evasnowind

1月 112021
 

如何部署activemq以及部署时遇到的相关问题

部署

以centos为例,下载jar包,tar -zxvf xxx解压后,进入activemq解压文件夹,执行./bin/activemq console即可在shell前端启动,想后台运行的话执行./bin/activemq start即可。

官方文档在这里,很简单:http://activemq.apache.org/getting-started

遇到的问题

1、activemq启动失败,报错

Continue reading »

12月 292020
 

spring cloud gateway(后续简称SCG)本身就是spring cloud体系的一员,在对于java技术栈的系统使用起来比较方便,此外,SCG扩展性比较好,适合作为业务网关的基础、根据自身需求进行二次开发。

关键组成部分

  • 谓词 predicate: 将请求匹配到对应的route上

  • 路由 route: 网关的基本构建块。它由ID,目标URI,谓词集合和过滤器集合定义

  • 过滤器 filter: 由特定工厂构造生成

Continue reading »

12月 022020
 

mysql安装有多种方式:

具体详细参考官网 (https://dev.mysql.com/doc/refman/5.7/en/installing.html

  • mysql的安装方法有多种,如二进制安装、源码编译安装、yum安装;

  • yum安装都是默认路径,不利于后期维护,安装相对简单;

  • 源码安装编译的过程比较长,若没有对源码进行修改且要求使用mysql较高版本;

Continue reading »

11月 202020
 

事情是这样子的:

我想自定义一个缓存注解,用来缓存方法返回值,并且支持自定义缓存超时时间,注解定义是这样:


@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.METHOD)
@Inherited
public @interface MyCache {

    @AliasFor("value")
    int expireTime() default 60;

    @AliasFor("expireTime")
    int value() default 60;
}

Continue reading »

10月 222020
 

Raft基础

在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。

Continue reading »

9月 222020
 

说明

本文所分析代码版本为spring boot/cloud 2.2.6。

预备知识

一些注解的说明

eureka中用到几个比较有意思的注解,简化程序实现。

@ConfigurationProperties(“eureka.instance”)

表示从外部配置文件中(properties或是yml文件)读取”eureka.instance”对应的配置。

@ConditionalOnBean/@ConditionalOnClass

Continue reading »