Categories
java

hytrix

断路器 用作监控请求 是否合理 当出现异常流量 可以短路保护

具体使用方式通过切面编程 将需要监控的方法 包括controller service dao 的方法添加注解方式

然后当执行该方法时 会先进去hystrix定义的监控线程上

异步执行需监控的方法 并注册一个超时事件在 监控线程上

所以被HystrixCommand 注解的方法其实是异步执行的

思考 是否应该在网关应用上 添加hystrix 做断路器限流

的确是应该如此这样做

Categories
java microservice php

Sidecar

Spring Cloud Netflix Sidecar框架提供了Sidecar模式的现成解决方案。Spring Cloud Netflix Sidecar框架框架可以提供对其他非Spring Cloud技术栈的微服务的治理。比如,你可以使用Node或者Golang php 编写一个Web项目,这个服务同样可以以Sidecar模式,纳入到Spring Cloud管理中去。

Categories
java

spring integration

类似于数据管道处理的 框架 是一个面向数据的框架

可以兼容多种现有的消息处理框架 包括kafka MQ 等 也可以处理 java 特有JMS消息 RMI Socket 等数据接入点

核心信息用Message 代表

Channel 发送信息 send 拉取信息 receive 订阅消息 subscribe

queue channel 可以缓冲消息

channel interceptor 拦截器了 说明消息处理也是过滤链模式

channel.addInterceptor(Interceptor xxx)

xml 配置说明

spring-integration 可通过xml配置消息处理链 达到代码解耦效果

Categories
java

maven runnable jar

<build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-surefire-plugin</artifactId>
                <version>2.5</version>
                <configuration>
                    <skip>true</skip>
                </configuration>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-shade-plugin</artifactId>
                <version>2.4.1</version>
                <executions>
                    <execution>
                        <phase>package</phase>
                        <goals>
                            <goal>shade</goal>
                        </goals>
                        <configuration>
                            <transformers>
                                <transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
                                    <mainClass>robin.tcpip.gateway.Main</mainClass>
                                </transformer>
                            </transformers>
                        </configuration>
                    </execution>
                </executions>
            </plugin>
        </plugins>
    </build>

mainClass 指定 可执行主类

执行 mvn package 可打包

打包成runnable jar 后可直接运行 且保内包含所有依赖的jar包

Categories
java

zuul 1.x

zuul 网关应用分 1.X 版本 和 2.X 版本 两者相差很大

以下详细说明zuul 1.X 版本

在原始在zuul-core 包中 所有请求是通过 com.netflix.zuul.http.ZuulServlet 在 /zuul/* 下建立servlet 入口

然后在 zuulServlet的service方法中 执行 zuulRunner 去处理请求

然后不同请求路径下会使用 zuulRunner里面的不同的 filterProcessor 去处理

譬如 :

静态路由的地址 由配置文件配置的路由器处理

微服务路由地址 由ribbon的提供路由策略 RibbonRoutingFilter

所有的这些处理请求filter 其实是把请求重发到对应的地址

再把响应结果返回给网关(转发)

具体实现http请求的框架可以配置 okhttp httpClient 等

和 spring-boot 整合后

springmvc 用 org.springframework.cloud.netflix.zuul.web.ZuulController

包装了zuulServlet (servletWrapper)

还是通过springMVC去处理网关!!!

Categories
java mysql

mycat 实例

mycat配置解释

再mycat2/conf/有配置文件

server.xml 定义数据库连接 用户

schema.xml 定义 虚拟表和实体表

rule.xml 定义分库逻辑(入库)

route.xml定义查询时实体表路由配置(查询)

简单按字段值分库
<!-- 按照学校名分表 -->
	<tableRule name="shardingBySchoolName">
		<rule>
			<columns>school_name</columns>
			<algorithm>shardingBySchoolName</algorithm>
		</rule>
	</tableRule>
<!-- 按照学校名分表 -->
	<function name="shardingBySchoolName" class="org.opencloudb.route.function.PartitionByFileMap">
		<property name="mapFile">shardingBySchoolName.txt</property>
		<property name="type">1</property>
		<property name="defaultNode">0</property>
	</function>

shardingBySchoolName.txt

爱享=0
中悦=1
DEFAULT_NODE=1
Categories
java

elasticsearch

Categories
java

docker tomcat

静态资源目录在 /usr/local/tomcat/webapps

配置文件在 /usr/local/tomcat/conf/server.xml

Categories
java

apache httpd

Apache(音译为阿帕奇)是世界使用排名第一的Web服务器软件。它可以运行在几乎所有广泛使用的计算机平台上,由于其跨平台和安全性被广泛使用,是最流行的Web服务器端软件之一。它快速、可靠并且可通过简单的API扩充,将Perl/Python解释器编译到服务器中

服务器根目录在/usr/local/apache2/htdocs

Categories
java

jetty

Jetty 是一个开源的servlet容器,它为基于Java的web容器,例如JSP和servlet提供运行环境。Jetty是使用Java语言编写的,它的API以一组JAR包的形式发布。开发人员可以将Jetty容器实例化成一个对象,可以迅速为一些独立运行(stand-alone)的Java应用提供网络和web连接。

默认的静态资源文件夹 在/var/lib/jetty/webapps/下

添加默认根context:在/var/lib/jetty/webapps/下添加ROOT文件夹

然后在ROOT文件夹添加index.html

即可提供默认主页访问

当然也可把war包放到webapps下自动解压访问