部署
以centos为例,下载jar包,tar -zxvf xxx
解压后,进入activemq解压文件夹,执行./bin/activemq console
即可在shell前端启动,想后台运行的话执行./bin/activemq start
即可。
官方文档在这里,很简单:http://activemq.apache.org/getting-started
以centos为例,下载jar包,tar -zxvf xxx
解压后,进入activemq解压文件夹,执行./bin/activemq console
即可在shell前端启动,想后台运行的话执行./bin/activemq start
即可。
官方文档在这里,很简单:http://activemq.apache.org/getting-started
spring cloud gateway(后续简称SCG)本身就是spring cloud体系的一员,在对于java技术栈的系统使用起来比较方便,此外,SCG扩展性比较好,适合作为业务网关的基础、根据自身需求进行二次开发。
谓词 predicate: 将请求匹配到对应的route上
路由 route: 网关的基本构建块。它由ID,目标URI,谓词集合和过滤器集合定义
过滤器 filter: 由特定工厂构造生成
如果项目较大,需要尽可能跳过无关痛痒的环节(比如自己本地编译、使用的话,可能没必要编译javadoc)、只要最终jar的时候,可以用下面命令
mvn clean package install -Dmaven.test.skip=true -Dmaven.javadoc.skip=true -Drat.skip=true -Dcheckstyle.skip=true
具体详细参考官网 (https://dev.mysql.com/doc/refman/5.7/en/installing.html)
mysql的安装方法有多种,如二进制安装、源码编译安装、yum安装;
yum安装都是默认路径,不利于后期维护,安装相对简单;
源码安装编译的过程比较长,若没有对源码进行修改且要求使用mysql较高版本;
示例:
public class A {
//......
public void serviceA() {
......
}
public void serviceB() {
......
serviceA()
......
}
}
事情是这样子的:
我想自定义一个缓存注解,用来缓存方法返回值,并且支持自定义缓存超时时间,注解定义是这样:
RetentionPolicy.RUNTIME)
(ElementType.METHOD)
(
public @interface MyCache {
"value")
( int expireTime() default 60;
"expireTime")
( int value() default 60;
}
在raft中,服务器节点共有3种状态(或者说角色):
leader
负责client交互和log复制,同一时刻系统中最多存在1个。
follower
节点的初始状态就是follower,follower只能被动响应请求RPC,从不主动发起请求RPC。
如果follower在一定时间范围(后面会讲,这个叫election timeout)内没有收到leader的请求,则follower可以转变成candidate(If followers don’t hear from a leader then they can become a candidate.)
candidate
一个临时的状态,只存在于选举leader阶段。一个节点想要变成leader,那么就发起投票请求,同时自己变成candidate。如果选举成功,则变为candidate,否则退回为follower。其他节点根据当前状态回复是否,如果已经投票给其他candidate,则不会再投票给这个candidate(一个节点只有一票)。
获得多数选票的candidate(n/2+1)将会变成leader。
若无特别说明,本文所涉及的代码版本为spring boot/cloud 2.2.6。
接受服务注册
接受服务心跳
服务剔除
服务下线
集群同步
获取注册表中服务实例信息
本文所分析代码版本为spring boot/cloud 2.2.6。
eureka中用到几个比较有意思的注解,简化程序实现。
表示从外部配置文件中(properties或是yml文件)读取”eureka.instance”对应的配置。