From 132abf6edcee36628646472c753e1ca4ac2fae16 Mon Sep 17 00:00:00 2001 From: fxb Date: Mon, 17 Dec 2018 21:45:04 +0800 Subject: [PATCH] =?UTF-8?q?hystrix=E5=BC=B9=E6=80=A7=E5=AE=A2=E6=88=B7?= =?UTF-8?q?=E7=AB=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../读写分离配置/springboot配置读写分离.md | 630 +++++++++--------- ...ingCloud与Netflix Hystrix的弹性客户端模式.md | 204 ++++++ .../picFolder/hystrix操时报错.png | Bin 0 -> 58926 bytes .../picFolder/客户端弹性模式架构.png | Bin 0 -> 24697 bytes linux/软件安装/linux下docker安装与配置.md | 100 +-- look.json | 2 +- node/环境配置/picFolder/tsconfig界面.png | Bin 0 -> 66019 bytes node/环境配置/picFolder/vscode附加进程.png | Bin 0 -> 59199 bytes node/环境配置/picFolder/添加配置.png | Bin 0 -> 17361 bytes node/环境配置/vscode开发调试typescript.md | 116 ++++ 10 files changed, 686 insertions(+), 366 deletions(-) create mode 100644 java/springcloud实战/3.springCloud与Netflix Hystrix的弹性客户端模式.md create mode 100644 java/springcloud实战/picFolder/hystrix操时报错.png create mode 100644 java/springcloud实战/picFolder/客户端弹性模式架构.png create mode 100644 node/环境配置/picFolder/tsconfig界面.png create mode 100644 node/环境配置/picFolder/vscode附加进程.png create mode 100644 node/环境配置/picFolder/添加配置.png create mode 100644 node/环境配置/vscode开发调试typescript.md diff --git a/java/springboot系列/读写分离配置/springboot配置读写分离.md b/java/springboot系列/读写分离配置/springboot配置读写分离.md index 7894723..b589faf 100644 --- a/java/springboot系列/读写分离配置/springboot配置读写分离.md +++ b/java/springboot系列/读写分离配置/springboot配置读写分离.md @@ -1,315 +1,315 @@ -[id]:2018-09-10 -[type]:javaee -[tag]:java,spring,springboot,mybatis,读写分离 - -  近日工作任务较轻,有空学习学习技术,遂来研究如果实现读写分离。这里用博客记录下过程,一方面可备日后查看,同时也能分享给大家(网上的资料真的大都是抄来抄去,,还不带格式的,看的真心难受)。 - -[完整代码](https://github.com/FleyX/demo-project/tree/master/dxfl) - -## 1、背景 - -  一个项目中数据库最基础同时也是最主流的是单机数据库,读写都在一个库中。当用户逐渐增多,单机数据库无法满足性能要求时,就会进行读写分离改造(适用于读多写少),写操作一个库,读操作多个库,通常会做一个数据库集群,开启主从备份,一主多从,以提高读取性能。当用户更多读写分离也无法满足时,就需要分布式数据库了(可能以后会学习怎么弄)。 - -  正常情况下读写分离的实现,首先要做一个一主多从的数据库集群,同时还需要进行数据同步。这一篇记录如何用mysql搭建一个一主多次的配置,下一篇记录代码层面如何实现读写分离。 - -## 2、搭建一主多从数据库集群 - -  主从备份需要多台虚拟机,我是用wmware完整克隆多个实例,注意直接克隆的虚拟机会导致每个数据库的uuid相同,需要修改为不同的uuid。修改方法参考这个:[点击跳转](https://blog.csdn.net/pratise/article/details/80413198)。 - -- 主库配置 - - 主数据库(master)中新建一个用户用于从数据库(slave)读取主数据库二进制日志,sql语句如下: - - ```sql - mysql> CREATE USER 'repl'@'%' IDENTIFIED BY '123456';#创建用户 - mysql> GRANT REPLICATION SLAVE ON *.* TO 'repl'@'%';#分配权限 - mysql>flush privileges; #刷新权限 - ``` - - 同时修改mysql配置文件开启二进制日志,新增部分如下: - - ```sql - [mysqld] - server-id=1 - log-bin=master-bin - log-bin-index=master-bin.index - ``` - - 然后重启数据库,使用`show master status;`语句查看主库状态,如下所示: - -![主库状态](./picFolder/pic1.png) - -- 从库配置 - - 同样先新增几行配置: - - ```sql - [mysqld] - server-id=2 - relay-log-index=slave-relay-bin.index - relay-log=slave-relay-bin - ``` - - 然后重启数据库,使用如下语句连接主库: - - ```sql - CHANGE MASTER TO - MASTER_HOST='192.168.226.5', - MASTER_USER='root', - MASTER_PASSWORD='123456', - MASTER_LOG_FILE='master-bin.000003', - MASTER_LOG_POS=154; - ``` - - 接着运行`start slave;`开启备份,正常情况如下图所示:Slave_IO_Running和Slave_SQL_Running都为yes。 - - ![1536223020742](./picFolder/pic2.png) - - 可以用这个步骤开启多个从库。 - -  默认情况下备份是主库的全部操作都会备份到从库,实际可能需要忽略某些库,可以在主库中增加如下配置: - -```sql -# 不同步哪些数据库 -binlog-ignore-db = mysql -binlog-ignore-db = test -binlog-ignore-db = information_schema - -# 只同步哪些数据库,除此之外,其他不同步 -binlog-do-db = game -``` - -## 3、代码层面进行读写分离 - -  代码环境是springboot+mybatis+druib连接池。想要读写分离就需要配置多个数据源,在进行写操作是选择写的数据源,读操作时选择读的数据源。其中有两个关键点: - -- 如何切换数据源 -- 如何根据不同的方法选择正确的数据源 - -### 1)、如何切换数据源 - -  通常用springboot时都是使用它的默认配置,只需要在配置文件中定义好连接属性就行了,但是现在我们需要自己来配置了,spring是支持多数据源的,多个datasource放在一个HashMap`TargetDataSource`中,通过`dertermineCurrentLookupKey`获取key来觉定要使用哪个数据源。因此我们的目标就很明确了,建立多个datasource放到TargetDataSource中,同时重写dertermineCurrentLookupKey方法来决定使用哪个key。 - -### 2)、如何选择数据源 - -  事务一般是注解在Service层的,因此在开始这个service方法调用时要确定数据源,有什么通用方法能够在开始执行一个方法前做操作呢?相信你已经想到了那就是**切面 **。怎么切有两种办法: - -- 注解式,定义一个只读注解,被该数据标注的方法使用读库 -- 方法名,根据方法名写切点,比如getXXX用读库,setXXX用写库 - -### 3)、代码编写 - -#### a、编写配置文件,配置两个数据源信息 - -  只有必填信息,其他都有默认设置 - -```yml -mysql: - datasource: - #读库数目 - num: 1 - type-aliases-package: com.example.dxfl.dao - mapper-locations: classpath:/mapper/*.xml - config-location: classpath:/mybatis-config.xml - write: - url: jdbc:mysql://192.168.226.5:3306/test?useUnicode=true&characterEncoding=utf-8&useSSL=true - username: root - password: 123456 - driver-class-name: com.mysql.jdbc.Driver - read: - url: jdbc:mysql://192.168.226.6:3306/test?useUnicode=true&characterEncoding=utf-8&useSSL=true - username: root - password: 123456 - driver-class-name: com.mysql.jdbc.Driver -``` - -#### b、编写DbContextHolder类 - -  这个类用来设置数据库类别,其中有一个ThreadLocal用来保存每个线程的是使用读库,还是写库。代码如下: - -```java -/** - * Description 这里切换读/写模式 - * 原理是利用ThreadLocal保存当前线程是否处于读模式(通过开始READ_ONLY注解在开始操作前设置模式为读模式, - * 操作结束后清除该数据,避免内存泄漏,同时也为了后续在该线程进行写操作时任然为读模式 - * @author fxb - * @date 2018-08-31 - */ -public class DbContextHolder { - - private static Logger log = LoggerFactory.getLogger(DbContextHolder.class); - public static final String WRITE = "write"; - public static final String READ = "read"; - - private static ThreadLocal contextHolder= new ThreadLocal<>(); - - public static void setDbType(String dbType) { - if (dbType == null) { - log.error("dbType为空"); - throw new NullPointerException(); - } - log.info("设置dbType为:{}",dbType); - contextHolder.set(dbType); - } - - public static String getDbType() { - return contextHolder.get() == null ? WRITE : contextHolder.get(); - } - - public static void clearDbType() { - contextHolder.remove(); - } -} -``` - -#### c、重写determineCurrentLookupKey方法 - -  spring在开始进行数据库操作时会通过这个方法来决定使用哪个数据库,因此我们在这里调用上面DbContextHolder类的`getDbType()`方法获取当前操作类别,同时可进行读库的负载均衡,代码如下: - -```java -public class MyAbstractRoutingDataSource extends AbstractRoutingDataSource { - - @Value("${mysql.datasource.num}") - private int num; - - private final Logger log = LoggerFactory.getLogger(this.getClass()); - - @Override - protected Object determineCurrentLookupKey() { - String typeKey = DbContextHolder.getDbType(); - if (typeKey == DbContextHolder.WRITE) { - log.info("使用了写库"); - return typeKey; - } - //使用随机数决定使用哪个读库 - int sum = NumberUtil.getRandom(1, num); - log.info("使用了读库{}", sum); - return DbContextHolder.READ + sum; - } -} -``` - -#### d、编写配置类 - -  由于要进行读写分离,不能再用springboot的默认配置,我们需要手动来进行配置。首先生成数据源,使用@ConfigurProperties自动生成数据源: - -```java - /** - * 写数据源 - * - * @Primary 标志这个 Bean 如果在多个同类 Bean 候选时,该 Bean 优先被考虑。 - * 多数据源配置的时候注意,必须要有一个主数据源,用 @Primary 标志该 Bean - */ - @Primary - @Bean - @ConfigurationProperties(prefix = "mysql.datasource.write") - public DataSource writeDataSource() { - return new DruidDataSource(); - } -``` - -读数据源类似,注意有多少个读库就要设置多少个读数据源,Bean名为read+序号。 - -  然后设置数据源,使用的是我们之前写的MyAbstractRoutingDataSource类 - -```java - /** - * 设置数据源路由,通过该类中的determineCurrentLookupKey决定使用哪个数据源 - */ - @Bean - public AbstractRoutingDataSource routingDataSource() { - MyAbstractRoutingDataSource proxy = new MyAbstractRoutingDataSource(); - Map targetDataSources = new HashMap<>(2); - targetDataSources.put(DbContextHolder.WRITE, writeDataSource()); - targetDataSources.put(DbContextHolder.READ+"1", read1()); - proxy.setDefaultTargetDataSource(writeDataSource()); - proxy.setTargetDataSources(targetDataSources); - return proxy; - } -``` - -  接着需要设置sqlSessionFactory - -```java - /** - * 多数据源需要自己设置sqlSessionFactory - */ - @Bean - public SqlSessionFactory sqlSessionFactory() throws Exception { - SqlSessionFactoryBean bean = new SqlSessionFactoryBean(); - bean.setDataSource(routingDataSource()); - ResourcePatternResolver resolver = new PathMatchingResourcePatternResolver(); - // 实体类对应的位置 - bean.setTypeAliasesPackage(typeAliasesPackage); - // mybatis的XML的配置 - bean.setMapperLocations(resolver.getResources(mapperLocation)); - bean.setConfigLocation(resolver.getResource(configLocation)); - return bean.getObject(); - } -``` - -  最后还得配置下事务,否则事务不生效 - -```java - /** - * 设置事务,事务需要知道当前使用的是哪个数据源才能进行事务处理 - */ - @Bean - public DataSourceTransactionManager dataSourceTransactionManager() { - return new DataSourceTransactionManager(routingDataSource()); - } -``` - -### 4)、选择数据源 - -  多数据源配置好了,但是代码层面如何选择选择数据源呢?这里介绍两种办法: - -#### a、注解式 - -  首先定义一个只读注解,被这个注解方法使用读库,其他使用写库,如果项目是中途改造成读写分离可使用这个方法,无需修改业务代码,只要在只读的service方法上加一个注解即可。 - -```java -@Target({ElementType.METHOD,ElementType.TYPE}) -@Retention(RetentionPolicy.RUNTIME) -public @interface ReadOnly { -} -``` - -  然后写一个切面来切换数据使用哪种数据源,重写getOrder保证本切面优先级高于事务切面优先级,在启动类加上`@EnableTransactionManagement(order = 10) `,为了代码如下: - -```java -@Aspect -@Component -public class ReadOnlyInterceptor implements Ordered { - private static final Logger log= LoggerFactory.getLogger(ReadOnlyInterceptor.class); - - @Around("@annotation(readOnly)") - public Object setRead(ProceedingJoinPoint joinPoint,ReadOnly readOnly) throws Throwable{ - try{ - DbContextHolder.setDbType(DbContextHolder.READ); - return joinPoint.proceed(); - }finally { - //清楚DbType一方面为了避免内存泄漏,更重要的是避免对后续在本线程上执行的操作产生影响 - DbContextHolder.clearDbType(); - log.info("清除threadLocal"); - } - } - - @Override - public int getOrder() { - return 0; - } -} -``` - -#### b、方法名式 - -  这种方法不许要注解,但是需要事务名称按一定规则编写,然后通过切面来设置数据库类别,比如`setXXX`设置为写、`getXXX`设置为读,代码我就不写了,应该都知道怎么写。 - -## 4、测试 - -  编写好代码来试试结果如何,下面是运行截图: - -![1536312274474](./picFolder/pic3.png) - -  断断续续写了好几天终于是写完了,,,如果有帮助到你,,欢迎star哦,,这里是完整代码地址:[点击跳转](https://github.com/FleyX/demo-project/tree/master/dxfl) +[id]:2018-09-10 +[type]:javaee +[tag]:java,spring,springboot,mybatis,读写分离 + +  近日工作任务较轻,有空学习学习技术,遂来研究如果实现读写分离。这里用博客记录下过程,一方面可备日后查看,同时也能分享给大家(网上的资料真的大都是抄来抄去,,还不带格式的,看的真心难受)。 + +[完整代码](https://github.com/FleyX/demo-project/tree/master/dxfl) + +## 1、背景 + +  一个项目中数据库最基础同时也是最主流的是单机数据库,读写都在一个库中。当用户逐渐增多,单机数据库无法满足性能要求时,就会进行读写分离改造(适用于读多写少),写操作一个库,读操作多个库,通常会做一个数据库集群,开启主从备份,一主多从,以提高读取性能。当用户更多读写分离也无法满足时,就需要分布式数据库了(可能以后会学习怎么弄)。 + +  正常情况下读写分离的实现,首先要做一个一主多从的数据库集群,同时还需要进行数据同步。这一篇记录如何用mysql搭建一个一主多次的配置,下一篇记录代码层面如何实现读写分离。 + +## 2、搭建一主多从数据库集群 + +  主从备份需要多台虚拟机,我是用wmware完整克隆多个实例,注意直接克隆的虚拟机会导致每个数据库的uuid相同,需要修改为不同的uuid。修改方法参考这个:[点击跳转](https://blog.csdn.net/pratise/article/details/80413198)。 + +- 主库配置 + + 主数据库(master)中新建一个用户用于从数据库(slave)读取主数据库二进制日志,sql语句如下: + + ```sql + mysql> CREATE USER 'repl'@'%' IDENTIFIED BY '123456';#创建用户 + mysql> GRANT REPLICATION SLAVE ON *.* TO 'repl'@'%';#分配权限 + mysql>flush privileges; #刷新权限 + ``` + + 同时修改mysql配置文件开启二进制日志,新增部分如下: + + ```sql + [mysqld] + server-id=1 + log-bin=master-bin + log-bin-index=master-bin.index + ``` + + 然后重启数据库,使用`show master status;`语句查看主库状态,如下所示: + +![主库状态](./picFolder/pic1.png) + +- 从库配置 + + 同样先新增几行配置: + + ```sql + [mysqld] + server-id=2 + relay-log-index=slave-relay-bin.index + relay-log=slave-relay-bin + ``` + + 然后重启数据库,使用如下语句连接主库: + + ```sql + CHANGE MASTER TO + MASTER_HOST='192.168.226.5', + MASTER_USER='root', + MASTER_PASSWORD='123456', + MASTER_LOG_FILE='master-bin.000003', + MASTER_LOG_POS=154; + ``` + + 接着运行`start slave;`开启备份,正常情况如下图所示:Slave_IO_Running和Slave_SQL_Running都为yes。 + + ![1536223020742](./picFolder/pic2.png) + + 可以用这个步骤开启多个从库。 + +  默认情况下备份是主库的全部操作都会备份到从库,实际可能需要忽略某些库,可以在主库中增加如下配置: + +```sql +# 不同步哪些数据库 +binlog-ignore-db = mysql +binlog-ignore-db = test +binlog-ignore-db = information_schema + +# 只同步哪些数据库,除此之外,其他不同步 +binlog-do-db = game +``` + +## 3、代码层面进行读写分离 + +  代码环境是springboot+mybatis+druib连接池。想要读写分离就需要配置多个数据源,在进行写操作是选择写的数据源,读操作时选择读的数据源。其中有两个关键点: + +- 如何切换数据源 +- 如何根据不同的方法选择正确的数据源 + +### 1)、如何切换数据源 + +  通常用springboot时都是使用它的默认配置,只需要在配置文件中定义好连接属性就行了,但是现在我们需要自己来配置了,spring是支持多数据源的,多个datasource放在一个HashMap`TargetDataSource`中,通过`dertermineCurrentLookupKey`获取key来觉定要使用哪个数据源。因此我们的目标就很明确了,建立多个datasource放到TargetDataSource中,同时重写dertermineCurrentLookupKey方法来决定使用哪个key。 + +### 2)、如何选择数据源 + +  事务一般是注解在Service层的,因此在开始这个service方法调用时要确定数据源,有什么通用方法能够在开始执行一个方法前做操作呢?相信你已经想到了那就是**切面 **。怎么切有两种办法: + +- 注解式,定义一个只读注解,被该数据标注的方法使用读库 +- 方法名,根据方法名写切点,比如getXXX用读库,setXXX用写库 + +### 3)、代码编写 + +#### a、编写配置文件,配置两个数据源信息 + +  只有必填信息,其他都有默认设置 + +```yml +mysql: + datasource: + #读库数目 + num: 1 + type-aliases-package: com.example.dxfl.dao + mapper-locations: classpath:/mapper/*.xml + config-location: classpath:/mybatis-config.xml + write: + url: jdbc:mysql://192.168.226.5:3306/test?useUnicode=true&characterEncoding=utf-8&useSSL=true + username: root + password: 123456 + driver-class-name: com.mysql.jdbc.Driver + read: + url: jdbc:mysql://192.168.226.6:3306/test?useUnicode=true&characterEncoding=utf-8&useSSL=true + username: root + password: 123456 + driver-class-name: com.mysql.jdbc.Driver +``` + +#### b、编写DbContextHolder类 + +  这个类用来设置数据库类别,其中有一个ThreadLocal用来保存每个线程的是使用读库,还是写库。代码如下: + +```java +/** + * Description 这里切换读/写模式 + * 原理是利用ThreadLocal保存当前线程是否处于读模式(通过开始READ_ONLY注解在开始操作前设置模式为读模式, + * 操作结束后清除该数据,避免内存泄漏,同时也为了后续在该线程进行写操作时任然为读模式 + * @author fxb + * @date 2018-08-31 + */ +public class DbContextHolder { + + private static Logger log = LoggerFactory.getLogger(DbContextHolder.class); + public static final String WRITE = "write"; + public static final String READ = "read"; + + private static ThreadLocal contextHolder= new ThreadLocal<>(); + + public static void setDbType(String dbType) { + if (dbType == null) { + log.error("dbType为空"); + throw new NullPointerException(); + } + log.info("设置dbType为:{}",dbType); + contextHolder.set(dbType); + } + + public static String getDbType() { + return contextHolder.get() == null ? WRITE : contextHolder.get(); + } + + public static void clearDbType() { + contextHolder.remove(); + } +} +``` + +#### c、重写determineCurrentLookupKey方法 + +  spring在开始进行数据库操作时会通过这个方法来决定使用哪个数据库,因此我们在这里调用上面DbContextHolder类的`getDbType()`方法获取当前操作类别,同时可进行读库的负载均衡,代码如下: + +```java +public class MyAbstractRoutingDataSource extends AbstractRoutingDataSource { + + @Value("${mysql.datasource.num}") + private int num; + + private final Logger log = LoggerFactory.getLogger(this.getClass()); + + @Override + protected Object determineCurrentLookupKey() { + String typeKey = DbContextHolder.getDbType(); + if (typeKey == DbContextHolder.WRITE) { + log.info("使用了写库"); + return typeKey; + } + //使用随机数决定使用哪个读库 + int sum = NumberUtil.getRandom(1, num); + log.info("使用了读库{}", sum); + return DbContextHolder.READ + sum; + } +} +``` + +#### d、编写配置类 + +  由于要进行读写分离,不能再用springboot的默认配置,我们需要手动来进行配置。首先生成数据源,使用@ConfigurProperties自动生成数据源: + +```java + /** + * 写数据源 + * + * @Primary 标志这个 Bean 如果在多个同类 Bean 候选时,该 Bean 优先被考虑。 + * 多数据源配置的时候注意,必须要有一个主数据源,用 @Primary 标志该 Bean + */ + @Primary + @Bean + @ConfigurationProperties(prefix = "mysql.datasource.write") + public DataSource writeDataSource() { + return new DruidDataSource(); + } +``` + +读数据源类似,注意有多少个读库就要设置多少个读数据源,Bean名为read+序号。 + +  然后设置数据源,使用的是我们之前写的MyAbstractRoutingDataSource类 + +```java + /** + * 设置数据源路由,通过该类中的determineCurrentLookupKey决定使用哪个数据源 + */ + @Bean + public AbstractRoutingDataSource routingDataSource() { + MyAbstractRoutingDataSource proxy = new MyAbstractRoutingDataSource(); + Map targetDataSources = new HashMap<>(2); + targetDataSources.put(DbContextHolder.WRITE, writeDataSource()); + targetDataSources.put(DbContextHolder.READ+"1", read1()); + proxy.setDefaultTargetDataSource(writeDataSource()); + proxy.setTargetDataSources(targetDataSources); + return proxy; + } +``` + +  接着需要设置sqlSessionFactory + +```java + /** + * 多数据源需要自己设置sqlSessionFactory + */ + @Bean + public SqlSessionFactory sqlSessionFactory() throws Exception { + SqlSessionFactoryBean bean = new SqlSessionFactoryBean(); + bean.setDataSource(routingDataSource()); + ResourcePatternResolver resolver = new PathMatchingResourcePatternResolver(); + // 实体类对应的位置 + bean.setTypeAliasesPackage(typeAliasesPackage); + // mybatis的XML的配置 + bean.setMapperLocations(resolver.getResources(mapperLocation)); + bean.setConfigLocation(resolver.getResource(configLocation)); + return bean.getObject(); + } +``` + +  最后还得配置下事务,否则事务不生效 + +```java + /** + * 设置事务,事务需要知道当前使用的是哪个数据源才能进行事务处理 + */ + @Bean + public DataSourceTransactionManager dataSourceTransactionManager() { + return new DataSourceTransactionManager(routingDataSource()); + } +``` + +### 4)、选择数据源 + +  多数据源配置好了,但是代码层面如何选择选择数据源呢?这里介绍两种办法: + +#### a、注解式 + +  首先定义一个只读注解,被这个注解方法使用读库,其他使用写库,如果项目是中途改造成读写分离可使用这个方法,无需修改业务代码,只要在只读的service方法上加一个注解即可。 + +```java +@Target({ElementType.METHOD,ElementType.TYPE}) +@Retention(RetentionPolicy.RUNTIME) +public @interface ReadOnly { +} +``` + +  然后写一个切面来切换数据使用哪种数据源,重写getOrder保证本切面优先级高于事务切面优先级,在启动类加上`@EnableTransactionManagement(order = 10) `,为了代码如下: + +```java +@Aspect +@Component +public class ReadOnlyInterceptor implements Ordered { + private static final Logger log= LoggerFactory.getLogger(ReadOnlyInterceptor.class); + + @Around("@annotation(readOnly)") + public Object setRead(ProceedingJoinPoint joinPoint,ReadOnly readOnly) throws Throwable{ + try{ + DbContextHolder.setDbType(DbContextHolder.READ); + return joinPoint.proceed(); + }finally { + //清楚DbType一方面为了避免内存泄漏,更重要的是避免对后续在本线程上执行的操作产生影响 + DbContextHolder.clearDbType(); + log.info("清除threadLocal"); + } + } + + @Override + public int getOrder() { + return 0; + } +} +``` + +#### b、方法名式 + +  这种方法不许要注解,但是需要事务名称按一定规则编写,然后通过切面来设置数据库类别,比如`setXXX`设置为写、`getXXX`设置为读,代码我就不写了,应该都知道怎么写。 + +## 4、测试 + +  编写好代码来试试结果如何,下面是运行截图: + +![1536312274474](./picFolder/pic3.png) + +  断断续续写了好几天终于是写完了,,,如果有帮助到你,,欢迎star哦,,这里是完整代码地址:[点击跳转](https://github.com/FleyX/demo-project/tree/master/dxfl) diff --git a/java/springcloud实战/3.springCloud与Netflix Hystrix的弹性客户端模式.md b/java/springcloud实战/3.springCloud与Netflix Hystrix的弹性客户端模式.md new file mode 100644 index 0000000..b5c5a24 --- /dev/null +++ b/java/springcloud实战/3.springCloud与Netflix Hystrix的弹性客户端模式.md @@ -0,0 +1,204 @@ +--- +id="2018-11-28-15-57-00" +title="springCloud之Netflix Hystrix弹性客户端" +headWord="在任何分布式架构中,都需要找到机器所在的物理地址,这个概念自分布式计算开始就已经存在,并且被正式称为服务发现,本篇是对服务发现的一个学习总结" +tags=["spring-boot", "spring-cloud","netflix-hystrix"] +category="java" +serie="springCloud实战" +--- + +# 一、为什么要有客户端弹性模式 + +  所有的系统都会遇到故障,分布式系统单点故障概率更高。如何构建应用程序来应对故障,是每个软件开发人员工作的关键部分。但是通常在构建系统时,大多数工程师只考虑到基础设施或关键服务彻底发生故障,使用诸如集群关键服务器、服务间的负载均衡以及异地部署等技术。尽管这些方法考虑到组件系统的彻底故障,但他们之解决了构建弹性系统的一小部分问题。当服务崩溃时,很容易检测到该服务以及失效,因此应用程序可以饶过它。然而,当服务运行缓慢时,检测到这个服务性能越发低下并绕过它是非常困难的,因为以下几个原因: + +- 服务的降级可以是以间歇性的故障开始,并形成不可逆转的势头————可能开始只是一小部分服务调用变慢,直到突然间应用程序容器耗尽了线程(所有线程都在等待调用完成)并彻底崩溃。 +- 应用程序通常的设计是处理远程资源的彻底故障,而不是部分降级————通常,只要服务没有完全死掉,应用程序将继续调用这个服务,直到资源耗尽崩溃。 + +  性能较差的远程服务会导致很大的潜在问题,它们不仅难以检测,还会触发连锁反应,从而影响整个应用程序生态系统。如果没有适当的保护措施,一个性能不佳的服务可以迅速拖垮整个应用程序。基于云、基于微服务的应用程序特别容易受到这些类型的终端影响,因为这些应用由大量细粒度的分布式服务组成,这些服务在完成用户的事务时涉及不同的基础设施。 + +# 二、什么是客户端弹性模式 + +  客户端弹性模式是在远程服务发生错误或表现不佳时保护远程资源(另一个微服务调用或者数据库查询)免于崩溃。这些模式的目标是为了能让客户端“快速失败”,不消耗诸如数据库连接、线程池之类的资源,还可以避免远程服务的问题向客户端的消费者进行传播,引发“雪崩”效应。spring cloud 主要使用的有四种客户端弹性模式: + +- 客户端负载均衡(client load balance)模式 + +  上一篇已经说过,这里不再赘述。 + +- 断路器(circuit breaker)模式 + +  本模式模仿的是电路中的断路器。有了软件断路器,当远程服务被调用时,断路器将监视这个调用,如果调用时间太长,断路器将介入并中断调用。此外,如果对某个远程资源的调用失败次数达到某个阈值,将会采取快速失败策略,阻止将来调用失败的远程资源。 + +- 后备(fallback)模式 + +  当远程调用失败时,将执行替代代码路径,并尝试通过其他方式来处理操作,而不是产生一个异常。也就是为远程操作提供一个应急措施,而不是简单的抛出异常。 + +- 舱壁(bulkhead)模式 + +  舱壁模式是建立在造船的基础概念上。我们都知道一艘船会被划分为多个水密舱(舱壁),因而即使少数几个部位被击穿漏水,整艘船并不会被淹没。将这个概念带入到远程调用中,如果所有调用都使用的是同一个线程池来处理,那么很有可能一个缓慢的远程调用会拖垮整个应用程序。在舱壁模式中可以隔离每个远程资源,并分配各自的线程池,使之互不影响。 + +  下图展示了这些模式是如何运用到微服务中的: + +![客户端弹性模式架构](./picFolder/客户端弹性模式架构.png) + +# 三、spring cloud 中使用 + +  使用 Netflix 的 Hystrix 库来实现上述弹性模式。继续使用上一节的项目,给 licensingservice 服务实现弹性模式。 + +## 1、代码修改 + +### 1、依赖引入 + +  首先修改 POM 文件,添加下面两个依赖: + +```xml + + org.springframework.cloud + spring-cloud-starter-hystrix + + + + com.netflix.hystrix + hystrix-javanica + 1.5.9 + +``` + +  然后在启动类上加入`@EnableCircuitBreaker`启用 Hystrix。 + +## 2、实现断路器 + +  首先修改 organizationservice 项目中的 OrganizationController,模拟延迟,每隔两次让线程 sleep 2 秒 + +```java +@RestController +public class OrganizationController { + + private static int count=1; + + @GetMapping(value = "/organization/{orgId}") + public Object getOrganizationInfo(@PathVariable("orgId") String orgId) throws Exception{ + if(count%2==0){ + TimeUnit.SECONDS.sleep(2); + } + count++; + Map data = new HashMap<>(2); + data.put("id", orgId); + data.put("name", orgId + "公司"); + return data; + } +} +``` + +  只需在方法上添加`@HystrixCommand`,即可实现超时短路。如果 Spring 扫描到该注解注释的类,它将动态生成一个代理,来包装这个方法,并通过专门用于处理远程调用的线程池来管理对该方法的所有调用。 + +  修改 licensingservice 服务中的 OrganizationByRibbonService,OrganizationFeignClient,给其中的方法加上`@HystrixCommand`的注解。然后再访问接口[localhost:10011/licensingByRibbon/11313](localhost:10011/licensingByRibbon/11313),[localhost:10011/licensingByFeign/11313](localhost:10011/licensingByFeign/11313)。多次访问可发现抛出错误`com.netflix.hystrix.exception.HystrixRuntimeException`,断路器生效,默认情况下操时时间为 1s。 + +```json +{ + "timestamp": 1543823192424, + "status": 500, + "error": "Internal Server Error", + "exception": "com.netflix.hystrix.exception.HystrixRuntimeException", + "message": "OrganizationFeignClient#getOrganization(String) timed-out and no fallback available.", + "path": "/licensingByFeign/11313/" +} +``` + +  可通过设置注解参数来修改操时时间。设置超时时间大于 2s 后便不会报操时错误。(不知道为什么在 Feign 中设置失败,ribbon 中正常。)。一般都是将配置写在配置文件中。 + +```java +@HystrixCommand(commandProperties = { + @HystrixProperty(name = "execution.isolation.thread.timeoutInMilliseconds", value = "20000") + }) +``` + +## 3、后备处理 + +  由于远程资源的消费者和资源本身之间存在存在一个"中间人",因此开发人员能够拦截服务故障,并选择替代方案。在 Hystrix 中进行后备处理,非常容易实现。 + +1. 在 ribbon 中的实现 + +  只需在`@HystrixCommand`注解中加入属性 fallbackMethod="methodName",那么在执行失败时,便会执行后备方法。注意防备方法必须和被保护方法在同一个类中,并且方法签名必须相同。修改 licensingservice 中 service 包下的 OrganizationByRibbonService 类,改为如下: + +```java +@Component +public class OrganizationByRibbonService { + + private RestTemplate restTemplate; + + + @Autowired + public OrganizationByRibbonService(RestTemplate restTemplate) { + this.restTemplate = restTemplate; + } + + @HystrixCommand(commandProperties = { + @HystrixProperty(name = "execution.isolation.thread.timeoutInMilliseconds", value = "1000") + },fallbackMethod = "getOrganizationWithRibbonBackup") + public Organization getOrganizationWithRibbon(String id) throws Exception { + ResponseEntity responseEntity = restTemplate.exchange("http://organizationservice/organization/{id}", + HttpMethod.GET, null, Organization.class, id); + return responseEntity.getBody(); + } + + public Organization getOrganizationWithRibbonBackup(String id)throws Exception{ + Organization organization = new Organization(); + organization.setId("0"); + organization.setName("组织服务调用失败"); + return organization; + } +} +``` + +  启动应用,多次访问[localhost:10011/licensingByRibbon/11313/](localhost:10011/licensingByRibbon/11313/),可以发现调用失败时,会启用后备方法。 + +2. 在 feign 中实现 + +  在 feign 中实现后备模式,需要编写一个 feign 接口的实现类,然后在 feign 接口中指定该类。以 licensingservice 为例。首先在 client 包中添加一个 OrganizationFeignClientImpl 类,代码如下: + +```java +@Component +public class OrganizationFeignClientImpl implements OrganizationFeignClient{ + + @Override + public Organization getOrganization(String orgId) { + Organization organization=new Organization(); + organization.setId("0"); + organization.setName("后备模式返回的数据"); + return organization; + } +} +``` +然后修改OrganizationFeignClient接口的注解,将`@FeignClient("organizationservice")`改为`@FeignClient(name="organizationservice",fallback = OrganizationFeignClientImpl.class`。 + +  重启项目,多次访问[localhost:10011/licensingByFeign/11313/](localhost:10011/licensingByFeign/11313/),可发现后备服务起作用了。 + +  在确认是否要启用后备服务时,要注意以下两点: +- 后备是一种在资源操时或失败时提供行动方案的机制。如果只是用后备来捕获操时异常然后只做日志记录,那只需要try..catch即可,捕获HystrixRuntimeException异常。 + +- 注意后备方法所执行的操作。如果在后备服务中调用另一个分布式服务,需要注意用@HystrixCommand方法注解包装后备方法。 + +## 4、实现舱壁模式 + +  在基于微服务的应用程序中,通常需要调用多个微服务来完成特定的任务,在不适用舱壁的模式下,这些调用默认是使用同一批线程来执行调用的,而这些线程是为了处理整个Java容器的请求而预留的。因此在存在大量请求的情况下,一个服务出现性能问题会导致Java容器内的所有线程被占用,同时阻塞新请求,最终容器彻底崩溃。 + +  Hystrix使用线程池来委派所有对远程服务的调用,默认情况下这个线程池有10个工作线程。但是这样很容易出现一个运行缓慢的服务占用全部的线程,所有hystrix提供了一种一种易于使用的机制,在不同的远程资源调用间创建‘舱壁’,将不同服务的调用隔离到不同的线程池中,使之互不影响。 + +  要实现隔离的线程池,只需要在`@HystrixCommand`上加入线程池的注解,这里以ribbon为例(Feign类似)。修改licensingservice中service包下的OrganizaitonByRibbonService类,将`getOrganizationWithRibbon`方法的注解改为如下: + +```java +@HystrixCommand(commandProperties = { + @HystrixProperty(name = "execution.isolation.thread.timeoutInMilliseconds", value = "1000") + }, fallbackMethod = "getOrganizationWithRibbonBackup", + threadPoolKey = "licenseByOrgThreadPool", + threadPoolProperties = { + @HystrixProperty(name = "coreSize", value = "30"), + @HystrixProperty(name = "maxQueueSize", value = "10") + }) +``` +如果将`maxQueueSize`属性值设为-1,将使用`SynchronousQueue`保存所有的传入请求,同步队列会强制要求正在处理中的请求数量永远不能超过线程池的大小。设为大于1的值将使用`LinkedBlockingQueue`。 + +  **注意**:示例代码中都是硬编码属性值到Hystrix注解中的。在实际应用环境中,一般都是将配置项配置在Spring Cloud Config中的,方便统一管理。 + +本次用到全部代码:[记得补全代码呀]() \ No newline at end of file diff --git a/java/springcloud实战/picFolder/hystrix操时报错.png b/java/springcloud实战/picFolder/hystrix操时报错.png new file mode 100644 index 0000000000000000000000000000000000000000..d419477e102fd4169826e2afd35bea0e95eab02e GIT binary patch literal 58926 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

i5C{w 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 WtCo`$^vqcr@PKLQYZhI!3I7ik(VNi# literal 0 HcmV?d00001 diff --git a/java/springcloud实战/picFolder/客户端弹性模式架构.png b/java/springcloud实战/picFolder/客户端弹性模式架构.png new file mode 100644 index 0000000000000000000000000000000000000000..6e0760a9b929b35766cd99cdfcd29fd030d73477 GIT binary patch literal 24697 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%0Dj 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 literal 0 HcmV?d00001 diff --git a/node/环境配置/picFolder/vscode附加进程.png b/node/环境配置/picFolder/vscode附加进程.png new file mode 100644 index 0000000000000000000000000000000000000000..5f7788ffba7b17cc61d0f40386b5aec59d09ab9e GIT binary patch literal 59199 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 literal 0 HcmV?d00001 diff --git a/node/环境配置/picFolder/添加配置.png b/node/环境配置/picFolder/添加配置.png new file mode 100644 index 0000000000000000000000000000000000000000..07c38728a4a3e5fece2830835cd4a2b6ccc86220 GIT binary patch literal 17361 zcmeIaWmFx}_a*p%1Pu@Z!7U_6AOv?ya0wC!?(XhRg1d#_Zo%E%9YSz-eK^5w?)&|_ zd!|>dk6%h8}VWLE2OQUxXyi6y~Dg@%#_+VLY&&N0P{^Knay4>h8m zcX>69b4s<17bENpC3C+dY6?m!FGg@2U)SjLqxD}z0VVeA)k(e3ko$z2f%B(w9DKP0g>e+#Webr&fh?Q>txZHMaG z?9FsrYRqRo`uX|kEH}F@1t@&^@}jV?Q10v3@eTAg!u5>}EG(?=Bs@+ko?WBq0%Yeq zM6}}y`7#66mk9~@DFWVFX=M!!a}?z)EG&0k2nYQG1E0YVzdoq`0OL}8{D=XOlauoq zh^6MK4g*Kj9^?mr)jT~t+Yl90RPcX&)C_5F|5OxNrrox@*(#IY1*}~Go+y+dJU`71 zwJ(wkk1D7*I5bqq-oC2Gcx>8XkA?c7EUb&0pP#fysiZT4gvYI!-;R?230voP%xy@E zH@D7BWPGa#9QnI<&sMzd=pkK54dvy3j?5*=w&~StRhpeFE$O}PPsQH7dpBD$pTgw0 z|1E{n7XIeuCJ5X|LLzwTWn63U2!cg#7y+mA5wVAd$H}aIq$=;2OH+8!Xn{h$-ob3e znLaQ*c;60bjwQd!O6KI1Yrg2z)bK!3H{^kV0dYymA8IANgK>0QeYsEB;LY;Wy+RUM zj0e5%;^>t1o*p00p59SWiMCp{ru}snO|rT#p;sh_G?s{`Dt`U?9Z$=p!$8f=jXMCH zC}4Zr=;zO$s}ENzbuMWogQndMfLdg*^0=gR-4!?<#7i#Zi&X+oEjl@(J|j2ozv177!y_I0%yJ z@lY=m%@J5_I&MXS{DEFvUvEUxKUVPb^CxgS7D{!#2Q&5f_;|gYY+Y_PMa#;;@s^f$ zkivm7UnaG)RI^D=Tid#3U_Q0HoN>`*Bm86>0mXQyCJZtfd?{$)cr z4Pck4BIUPSTm-ansNOe2+TcX%^QT*|Y}71&9nV%EVDev+E0t=PIxbPmriB5!aV0=j z_wv&bbzG|G;v_w8w&G8&uEgZ!V}|H(Hf%o7(!xVrTwQgi3KemsWj6)~>I=-RQ)6Oc zY))1`6LUKtOT~W_(a=a4czO?<*{y|?%<~@>m2BEU<>4^!_0ON-V7`8EU=jMMnw^BP zxzBhsCD`-sGBYa+zRBrO(8!2NUP0ljoScp`kG-AUW}7+iaWH@+a@+f}mQp}~3`8}%pmc6W z)VaAid;u?BnH0`90%P@NtX@k$e!zc8VnqSY{t@l>@bDKufB%68p)yXf;;<%#2$2o1cKEIxA4eV>99YGZk&$7>N%}7? zYBWLRL4;DbZh381(>O!6tl8w0nUMiOK|!%gkByAPoGw(CK_1JpFe-Y!h+r8 zeEbW62RQEe&R8Es?@XI#4OrY{G?&l3Y_zP=JhrQZXOKUiM*PVq*NyAM&>2;WnC)mA=wNnS!&& z%LVJLtAKw`HPdcPMwV_WDhZ2ECLckpS(b56myS%1c))_#Fza&3Q1J$5B*pU0wQ3EF zjPwjAvH(XVFZ-7x5nFD(!XJBsgZdnUnA2x(B0syJU|>zgrbP?0M9I98c!MM9--!0t zuW&6|$1&cVkcRz+o9$%V%L7%&Cr3v%Fqy&E*Dk~YUc}f`U!uH=rp#UtFh9Fmw8w;W z)y0WsSEy*W{~5EpzqY+;{gx=v8$n`T6PeN4N{Z^=nI(Tnzu^;|WbrpX_}^MsWMq7o zs#-pnPjyzuT+BLKZFzfpmVGD`?vvGHUQP}aGbFLqMB8V%ll{}y&buWQ$L6FhWYt;COuDGVAr`KmI^yO%9sLp5i?d>QF1ilpF=2(lK zJ2Fvu;)gjeP0!41WCoH}s;t0Lp3j=^>c)nC#Ru~Tc4gnTHi3U`Eg~lp(wQJ@48kEM zT#n5WQpA9ie(D_is3h;WaeTaz-$fhNwMb%MoR5kMsNHiPrgo znT)0d_|D_~?of|p$t@pvpY|l)c#Hb%9L(~`H)hA-N~)@+mCDHF%R4w^WRbzx)RzO? z&VAQp82FFx)k<*nd&4>aE`xlsY7EC`>fBWSR+vHRe!yf>GjBzg9}>1oA6{x0ob?&FoVl}$ck@GL!{ctazM8^1ztj2S@Y$njRuYfhD)V5Oq! zHOtgt9v!GFz`>4afseezb*ZlVXNR2{o0Jp+f@2m~=K6gRB5rPtL#;O>6LY^n0H(n~ zEwcWZ#`y8rk(&gAjQ>TAnq`%0d|FxrxI!?0A~QGlxq6*djVhO+kr4$YrAX_siK}%{ z<=*=}M+F51*a}Z%tpKo!QNQ;^v346Ncj{=CHzO@As;t06waA6}{dW+aKU-OS1W02u zuaoa;(bxNagY1kw0ZGC7#~)lVI%@k`!I5S=c%5;a82;v1Drx4uNanPa*9)fnKR>DM zfQKwrt3fq1H2hDNbve~LSg0Gz#1-@MYHb!32XH{|;{50w%0lU8ZeqZxNN9vd0+~8tNMv87VfX3ls0MkfsX zJAQ6E!10Rokp9Gy*1xibuDtO!M`NHqYqrh1ZR#XCFE=kw@8R}>%9k-UE;%_A7W@M- zNMic7RIstJeY3JC;=|x#mjC=kk|Jb9g@9$#9xZv6WswfVFpC%E*ec2C;G|p;>l~%_~g??Yk zrIV=7#51$7tQ{Ri1O*`%MUsK244&{K$r~>=iMQR3+^JKvrw4OYU}l|fkWY(5ZW*hq ztI3)F-bTd(T=0U7f6?%5ei?fKOA7!sU4fW&Tq__NV_{?4k60T!I@XLZdHASu60l&< zLV{=pz9;2>d6QMtZN!O%bwM3Cx+5&?P{WiGBrg7fn&Q=~uHYcQZW{`UH~%?AN>8tR zh0iUf(L6i5QuIk!S=GE~bd#U%e?9YmT)a7}S}jgv=4j$w2G1p4boh9XZ$Q+wN4T}m z(V|8Ya{P9?-XRfTDcn%|-xaOK1ip*`#je2d1^6A$%*rjJO?fS;kN-d8?{Q=EGXHK< z{;tt&BXj3m;dv_k3e&mAa^hLA{;UUDO@Hk_bnzofUhJ}T__@Hv4?Q$`7 zamHLca^8+`rQSklXK45u5%ZF*q0kmAd{Xawly{WUf=bip$mliRBdtf%U*7?b5do%!O9*BPay7(D#50cYOL0TXQ_@DSl;W<1z|YInS~e|r-T z)z3>=$U9B{=13&)x#KQ-*dtgq7%~GeS~BXqrFOOEa?Cf;iU%;zzkgzXrl$i!@rdY2 z@dhTt-XoI|_*t`)9!%N69&6EcC)H&;aYb*vJJ{v42M-R?Vh3$r@fq{X}XbKOk6q%k@;(ffv#yz*1J;@vJY-vTeZhOFBw^|G$ z;dzW`ZjOZwxpf1(Q4^FV1S~EJK7dXF=mwr4Aq_>2r17C)Q!l?$mV4yaqIv2w|IK}p z$s6f#S0~FCjP&cH{eBIHwO5@O^nTSB^J3REqMSg+tcDN`_k)jQZe>#xsP{7J>t}Q6 zwk7{wET_4w+ote8@L`Z}hg~hZW7e(kt7Bv#kuo~yc-?G~7OR|^FM8csfFgl3)X?*6 z;A2ki!{YWvR#5uu(ABS>ueTYHzIxW?^$p$JpN}=6sJ>`Lw7iL?Q53VXV~#-Ro9>L0$ohXIkU=U*B> zYFZuX#?p=uZVaOMXm~!1J>6s4*`sSqmKLVeS}hr2$$;z!y|AO~iy#s5@`796DAQ1Y>JnHg3ak{rdX47Xzn7Kx_*d!)Owl)MLOm+PDM&(7`~csWLN% z=eI(z_drH&zdN>ugH+enQqVzNLkA@az71x=xQfsd)z*6nV&3c2p4?24nF*ui#Rhwj zh*x0W(Z4Ryc&}Fx>Oo4#iQ#rSz&9F63SM07qEeI-6-A`_k^u1+)U7f53%zhTZfP6H z%$liNgO;`R_D8?nGSalMVQg-RyFREI`*Is+XK&x+Mb@$8JXWVt+i=u5La^d_MbdhA z#KV=5b5{ybUgYj>CNf5ArI7wY?cr=y-wA07pF2A)y&5tE83Us;@dw#Umm!TUT8 z^S5-{=0s}$k*YC%H0_m+{z13VO`+{KVHn3z`2M}=tH+h6J8#?xMcUW% z^Yee^=gpXx>baSZ>?^0a80N}#eS28l6%*cu6;UfINz*Cw>)W;E=89lYL1wFrF}KIs zh?bX^!JCSj=kw@!Kbk`V@`!bi^G@8;Iu))y?oTx~KU^+|%gXi*#*O_m|1_|MLqrs+ zT4lsF`EzJ=R8&igwANzo2c^`nemF{c{o~~p&$`}^a%yS;@mgw@%+jdu^r6!aC;;tr z{(N7zdNH%oj)2MQlabM0RFfp=0=$>Wa1h79kT1~B&sIs`Uwa(pW2*CVu=c~g={+DJ z#KpzS=Vo$dpwdTlIBDQhd#PqRyw9RFfEp&u>9$o&^oMx$=c7EQAb6}sdf#U+hOrnO z+Zq!nOO+NT74ID!JgU{jf7I+8m{`f?;*~hk=e9dh=iTb$bF>0MTUADOU~SU`#63_s zWlouauhX?aG73IE5-lw)h!2PiIImxS&fa?{wNNHvGkYf}BxHN4mo1^_usuxhO*vT! zTQZl!>ok-Vz+|N~rLSKj%oQKCq$4kvMTGsbfA8|z*+;Gxl|34cr@uvi9d(`31 z$Jxs-D(dC+%?+0ZSK<{(3m{BpD>jZXO0v~TY6+5jbUA;}HB{=w6sw*yXJuzIxnEj< zSlZFohg4-e)|ti^z;HWPWjypCGd0Bqo5zsQP{3~55K}blri7JWu8{nZeV44YRFhhcxnj{#c_ZSL!i$9(o zw7ZrA-YZyDBzT`~CP&A{>NA(*<>A8qcHH&^XKE_Y*XZcoNDEz7=R15UE1Bd6fQiRx zj{qFL(@i8-E(GU=5mv9L5qc2O{@7O=amP@i`O$jSZ`AbQ^KwqC5Gv! z-_N#QuczBZnbxQ^#l_NHi1hqSPiKhKkGV|+>(CEW+C-2qy{?MN%89Huw|bg6Cs0|i z>f{T)sg&!$0r!J1Q3`d0PV3HBo5JWSx|uP`oYkc|YqD3^*k1u8-P|;Fxz_C}onSE@ zRpHIg%R|)mYCwYdF~!_1O^L$@zI#ILES2ujna5ryNKT%0ehqGGCrShDL29W`LYFaX%CtC41 zmrnmMquN5~M?ga2DgBR$jg?hrsZl`p=8U?+cuebtUuV}miTB1xSWIl=;Yt?Nux~gy zkpTi}nBsHJ&CRVpZl&aOIuLkhkZ`)FCNQ?Rzkc>JE-vxgyWWiiP}UzcLO+6stDbq_ zicpey^9B%tytZqd&t2!IN>gq_Y+r8e;5md_GJpFDyySOj>94LKHIoY^?MQVyr82P~ zYD&sC3=FcnOfoSu+TLAy^X|tj#!U0-sHMflJM`P}y;8x$ih*S>h}emdFiC%k1>ap? zlXGz3Nl0)EodbBVS~H^sC1j2=cl=h@%{fa;SM-IJSv^icDii}07gQaT=#>2fT;$&3 zO+_g=eIf#WB84hBUCLpBm;k6ExnCYcV`|$vI!?sDZE+u@3@j7(l%8z+>7{kOSvS{0 zh-GDQwAgTFsh-`PD6CCv8IKF! z?mCrU_2`rR>9*LxnDCMwr>5`iK?rHrtx*NS>$2v*JiO8jSSSUuodvC}tqizQ!U#b_ z$&P@S6xPy8E5eg{c=zTFoGjmk)cr{pCLsJtATZceZnGvBYwrcUaI;ux)#S$*Til;w z$jr+V)e0za4ZtL`V$v*|$u2BJ1=RdmHJ~^_TOmC;30q->?|rP6_b#F^%qWxwD~OU2>|B>5^wq4 z3bY@sxeDOeA}9e0sRrc)UBVOIUgRdgNrS ztHSdxP9gFBG_tI}E?0prIUVJDH&vj5kPrgk3B8`~R<3q#A?-dqnaMOC)e>tB2K0s# zn1rkZ;R2w!aq;olpk&>*%P~V^d^WWa$O7Typ|CL~_{9JL;u+Y~1%{hde z0}3FfU$Rvriu0l^lGkNb`rtW%c7ZTz#u4Ccb$UX+?69Ym(w;+c2iJba$M;28RPKi| zJO(qgUQ@%SW0<9_2lR&M3(3t%mcYEdBp?WGdpNXKD#`*T}g@!U8b-g}655S&_i(4Ct?|t*O*nBx=yBD5$H4)-AiCZEejQO{t_X84csd4xw*tZRvIe)SXN!v~`2l ziuHJbWpPPKNnac`L`eo=))7l4TP(6SQsB|#{1lLH6aaYX-Truv2E*VtUI0UR3@(GW zEmp1S-LJe|zaPnx1Q-Lb%+c}Ae+`mOIrG-K0`&)CdOq%r*;d=3qM->%hwl*xsB&p) zm)_VA^0~1B){#zIu#a#fYM{UWlYzmzTI-bve>6N8L$b+Q1>OMiBDLMRS=V*cwq1@3 z9R~$v1A<@6#bW;)2x1|-x-!#H00qaFBkiiV zSX;)qD!VPoXV0JOf}WJPgani8mrOZWe@a|RstZ&YAl1CY#}5K+zhq$P59+lqKp$`a z!b!s#(b0*bJR1Rygao{83hbMFQz)#GWdVXm!!`WUa z`5ywu?o!#JmA$=CRTI%ZB6{Vm0(AMp{SUdrzw@n{0j?PXPA=>(KBiSNjm0k^u{P0p z$;vVl`LcbWW;g}Dvj*6FsP#9t#Kzu9rCb zvx^Ar#EO!6<{Q2KSy`DllKHW7a8x%nbYvIBoHZ`Oi5LTeFmzR&GdDMSxjQ*^mSvN4 z99kmpn+Vx7jmrj-b{v)5g5xeeD$>|?_mMU5({A2gZwM^YvcA}#>(f`M zI!tBRtT!(mGd)@DP|D|EW1G`F0-@`)D*fSww&%rb*pz=s=O=Mq@#LVTrQO_@Oxj-4 zy$g4337Bj6dd{@J5T1~6)$voxQQXYxlSa|jO3la!$qrwO?eq|mF`uVxFYE`pz)poT zus zG5?SJh@HbZ<%IM{Ha{)#Df_qA{#vawiccdMqcYvqT7vTSd{i~8tDTOL;dNi3-#@?*-wNckm=n>2}6=ww&_B5xn2ugJG9&#|6^8T7g*0%Q&ThJ z5LjQ>LLyN1yS;edOc+|qI-$0>RME$P^F&DOr$OdTgH65KK#jXD@OL8b25*-MQG?>fCm4$9E&@g}Hv(@aL z9H{fyT>p!7ni+86vi7RS3HUG^wFkhhScfrKS1^1PXWh!&wFpSl$Vxm}E7v}XWKTWEtw|Fn5z zj2;0Jn^A$sKN=8wYM#naCfK=aQtW!HK+JDBA83D`Fs^dbu6d^4TNcZ1kGd@@+j-34 z;S=Ta=FCIU5%2Wx#?|@;LIZ|>ESKSq;TQA5j>XWpgqaMHZ^~^8lvkf;@p)fBg+xC= zbxkgrQrxy12_!#_68v3`5R;O$Q8uLHWzZIFN+xPWM(GID)$PB!5TW+5$FjwjKMSAQ zNk$qD3X)q)dKnmrxv7@A@+-M7tT%M%FXOEGd)Wz`cpeg+ZN2QS(?cGH{;RsjtJt%{ zi#B%RnS5*O|Jh+DC@LT0 zoW{{tb;Ob2>{fFHo&} z>NkbixjM0qoXs_cS6g8y&WriIPosTl@hi0Shbp0kgD__QS7QNvx|X}*%^H^oq{Z|d z+kap2sw73SeDtpQ?!V?h5<0zC-dO(fC^gl^bW{8Q<8Y30*!h6R>6@?X((}Zs%5}q=UDBxjf*Eb(%il13oIMj=XHM~_+k)6bp zC)YQD$GAaU9YLc$ZF}+}lX}&={zKmMX~5t$u*NUjHF%tOh7IfJXg&-o`{Z=>fH$qn zDivO#iwi0#!`I~4dV62AA|9W(tA z>+1ee_Uw@44r6_5D^xD4q=F#olGHiw37t3uMLM_tcacc1Kbi}BuiXwjmuSCDVF3ZB z*uz!sspig_*TTe5McWh9?QJkQrRU+vw=&d1ZonC>LKR8i9~!R~RdH(> z7KGd*pmkHTxWejYf?wNa!kO+|QL9#(A}Z`hVPulPoBsAe+Gk6P1A-fet>c;S;}oCH zo`FGo^A9wZ6JKVgqHCEyVPZ0<2mL|?569vOg1AGyEdIA@5%!nT`lgq-ci?8W&n#o84;rrOs{lrQ1Tg`TIp?6LX>y5a%`* zyl+g>7spqUw^!CnLoUj%+PU8AYU^-n_GzJGbdG&wTN|HO!*QoM$;6&{_Y=H{NHsUU zm^Wu2aQ*})(-)UyT=dQ~98k5d#U-Na=xmoh@t{kpmby0JmH}-req|wrGFmdkPuwb^%?kO1k5K!+|%{8 z5S-t9=-1|7diDg}EZ!Vx}dE6eeE7v>Ka6R~0-TZXBH&SmY*xcofX^f$3 z8{i#CTK4n72gyw8&(U@OQY=~b+TWsyKF1alOE$iR=Ut|d`i9)+P};#vD{C>|J93W< zdEL-9foh|sl@fn!M+U*NF6=20@v`@@k#bQf)4m4kXrIOM7X6ML?iwgCN>wWn1@+jZ z85^K@;P5eiO_|mFF=54>;ihIHzP#*h-qpP}v_$_)NEr21IrQHx_W|iaVB5{zMzy@@ zIkJ1@CZdj>JwjSBe`K|rkYb^|eP6)p+Vycc{&fv5=#^;U5f`TXl%xc*l3*YXv)ZBi z__24n#T`&w?ltnoDYr5ACtl!>CkFoU*4sgkEK*4+9eo)b|lU!V1 z*W>a5AHi31^9wNpr~@~wm$^N~LEK@p@BT_ZTvlom(G}MTT4$qiXf{wyX(!1vX9^p-E&Fc`E ziO62t+*fyqn7#Zf9h}hi&l8)(`JJXfULr2Z9L6*UC@0WcUOep7*Vo?){bp99)_g8A zHmDY$@PuM&-3R

bLplA2NZ_mX?fV$p9YG#4+ILxOMoTp*~l8UR?b%H8rTx?sI@i z3u!cv47_xN=Y;MB^X9%1i(8&OhKABoVK*>F~ZY$3$SUqP;O^LsnPxFP&`wuV&Jn>nbHrP3kyumB_lapCdEd7;)a-}R9g84WQyJ&nyj1`ijgElnI z-K9THH%&fRK}(YLG~~krXlAKmXIw84mDK~2i6l3rgj|!pdE()qRx<|qZOC!H#=~1k8UZXT0-z`} zz+0{%I(VAeItTU+p%F3+6-B?;Kd8228X2OxLg1NS)BlF z_nd8s{$r^tpXN_p^4(fhB>W_YZIabX6IQ}^l$2Z^<5G=Y4)qP0W>H9moW$SV2CV3L z4EkT@;}veA)CT>Iw+K)W@?Fc2tWi63nCL8&%aRfjQu?AJzOxsr z7lGNGM?NJ8@niB@&bSF6-ccbyFlblrmc(wED3%VpS`LTg;zo*Px|2aG7 zNhb#+l-g6_;o~Oz25&^O2{^4QE#>~=E|(TO=x;i70HT!icM4G!8hvo!`I1T8Aa%j16$en;%Q!Ggq?5G0Os1RKcQ zoQ{@`jsX1Oh1R#&AU_>`?1qE%1H{9HWlDV%4 z!w~~9$wX~!E2gMnCy!`Y?;kjQ;1Q5wQ5oH7GkulnJt(|`TZ z^FRC^7HFu5k-7?F!~=>R^vd)=69xCbU0+X0Mdc*v42U$)_e6;$SO%mrD=VvtXJyqn z&;EK(uNGf=P$^$Y33u!rP(qaWOFDnvIJg%Uj#x*wrFa#yWCMhAX(N5FUcJ(2WEK{F z6>2j$I?CRV9u=j-mQgG%;Chx5svH@FSoj$*k*dA0-V|7OFNuigWEG00Ec`41os!YGL~yX=s-w=4 zpQe7(f1e%GA%Sn9qHhLJjS8Eq@y^<1w@ZDMMn*>Ii zIH;s}AMpZ^nVJB>62bdH(7gsc{^go{7biysA^5pM?6M#wZU49(6KV$2jVjPfLW?Q)Ve%aBXVn>uu^?U)O{;aROx$^@{l&c)h z7CJ8|(yhgi(rD>>_!Jc(J_@a^*Q}iQu$#`l7QMW7bkI=(4^>#&J6jq8&5nB6j7tz~ z#51G=yVj}eeP#hl(O9Z)V+lGsDXEL=uG|6o3t`!^f;~hXB}@9W1{=7-OQ&xxZtGWX zMaivCbdtw(VOK7tF&pYBU@w38;0G?fgNHvkXVNdv$Ln|oNrhZKLtNkCSPm+KhkpsQ zC>&^LOcevCbhR(X+gWHRC@9b%RP5~QV*-!J$3yWIR=aY=ks*SiO;Az7>KBB5o^Ws` z|4!Pg0}zLci@Hz*1b(W|WzWo;J=|{yJ3Q?FC*)vgpipgX4XN-r(9{M7T+X3dV50Xl zW(uu&-Y`E7qlN@o*kGDi_YE133C<}pdHxCPcsEB%7$Sg9f(pCLe)|Rd{KBC?a1i3p z&)$}nBaIae1Y~{zdJ4kbitcN%t*vs74&((DSYI_gHD0kpgAhqWjh1Ag(60wu{u~r< z%Wemou?T|Ew6v~GfpLFtT^t1MqFxO_Dg!VBNBvV*BFt=^#imczcAuRrtn2yhUMPE# z1c`qkU6?XU){g+RZ8X?aQeV&M7Z~_9t7tACpoZDmARxguFg6y-wtZY&kHPju(oa?k z?@^=wWm4n9MqAi7M3DszTo^vx;DPdfiF}flkm$&cQ~>v zMuyQLA;7%lA&Xd!;i9?t;!Xvn6d z+3mkQWK7KXohcJmnBH4eHF1LOGBArGM@e~OEIQhyt8Zp+2Yb9`#E28*BE7@;niD8D zr*ifer|1pJL$Mu$(GD)|EJrP>Ad~{ z5hM>5%>4hPn&9Bz*?QZz&CSh!CMW$kmR%53RaI#i7{ovp(bLld{S6Eb4h~lKB+@IV z$9va<1HzV&76wY*MY(S}uUWD4Zk8G@GW^_~{0e zA0Ht;??(>oDF}BLt12s3cXk5v@~BwZ*gD3>Fo`&k2l>u#Xp{0cHn#4{8YIM!~OLK;Z$0&pit;6tS08w0y9d zKm6PI`Hby1^uh>9JUX*)ombo807?ynr=_5PN5lIltf!YX-6SO!!Ek;?C z!&$?wQvmk(r|mcX65xrrd8B3g7r->jLTAS!8wHVZ%@? ze0Xr${z*GnDrdG;;RvPyc&uNK>a#rAbStLp>b?;*Y-`{kXC7cWqO7Gz)}&=Lxk%(YQPZn)Pldd_ZxRjQ;B+z6rD)`D z0BcvxLB)CIg_MNEcd&zEBzhAdQBhS@0&u&Jfho3zhO#cnYwL(Tq^SR8ts@9fTTsLX zBViD?Umh;d8?hg0S33U=oouFKU~n!RdtX@d8e;Rg!-j&ee-W-Lf%1Ic6s+X_{(ji$ zpqJ|eTKnX5bVCND>Top+nSy(oX}+6%?o+3M;LY5!>TkU6CiDwhKYgf09xc zQi4jgw~ad;#s&wOxr9ZyrOQ}`>1g)u<$8DA?7A6KF}}O;jk>xqCj=pKI){tCy~6D2 z?OmUc73k^oN250i3lC@Ga{t~S5lfXw{8$N|HJ`yDYF5$F6MDEYc^Ctphl;EPs z5GO#*Hjsdc=#xZf8i?I0naG{*}Y47ZGSA&i9)K2L4p@$y`Q$JO%pQTwJEtR4UJ)6P*u zT()S(^s*oYVf_o`dlFv!Hex-3=c#6>yezy$`Ol^F1>aVqZ!FJUGLf2*--{*ry$0X=)o?P}`0W_$V zD=30FHUMgFLKhg@2q*eFE$y1|-7{nq+dWAvti%mN$Kd~4J@@}palQ!$X?uD&CP})< zjn@*C-3CQ7?*9;aPeRR^6FHWMEzhv99Q({T=b&_Y+OM!K*Z`Cg7hhtB)+Q_|Z0v|QhxDuU%s$wXz()6~3|JynEGQ#h2 ztnN}~jfI6D{Nu2(PzKDl44{lS#$$dG!jlTc|C2g>^H)N`?A!{S?h&YwAGMxSG!Ck% zJ5pV#!p4UU^)3L65WMz(9sU151e=Tht&B5}-KN~01jMNS#PJrYq8>k7*r;95R@~f+H0J41li(WmT{nJECAlO=by%{TO zv)cZ>sQI}tLf`)+Mj^7Qhr<-OXAB7m*)#>T9;!b)*j57e&T>E?V5bdGHecC*t$1G& z7~y()dd?i)w{MT7M{aIz@-Grnz?b^|cj-wekVh^Q>@3+0(bv12QY^bc>46$)XhIn% zX~5QANITdFxVc9_KoArb)(vjBn)I4F%Sv;?^FP8Evd0so{B%4V96zAC`KF|#2VPF4 z!7lfHHi^x=+vm7e5&>(@ zdBk4eg9_fOoI)5fn;9opk#qbNOXbJ5GXD2t?JhhUDMdir~6Y^7V50UTwS?f zB1;!{_o4G*jfPi_j*g&c(J!kD3@UEg?gX1S_X=CJfG8bonh1O=7NG-_ZD$TnQP>ys zb%696ebhp+2fHD2huqiv@ft1vO624%X*w_Y_xFqMUbq2y&04H1KiGi$U1H*-sI0ZK zkIehv@5MX9{$bffX7bM9pzgkNF0663@BeF{lIXXUVPmU#Xh9X89Q#k${NHNj{(mWS d=R9FXQ+t;hV2cNXf5!ol5Rnls71a6he*pQ?YEb|H literal 0 HcmV?d00001 diff --git a/node/环境配置/vscode开发调试typescript.md b/node/环境配置/vscode开发调试typescript.md new file mode 100644 index 0000000..1059dc9 --- /dev/null +++ b/node/环境配置/vscode开发调试typescript.md @@ -0,0 +1,116 @@ +--- +id="2018-12-17-13-58" +title="vscode开发调试typescript" +headWord="本篇用于记录如何在vscode下开发typescript以及端点调试ts代码" +tags=["vscode", "node","typescript","ts"] +category="node" +serie="node开发环境配置" +--- + +### 1、安装 typescript + +  npm 全局安装 typescript + +```bash +npm i -g typescript +``` + +### 2、初始化 ts 配置 + +  以 test 项目为例,在 test 目录下执行`tsc --init`,会在项目目录下产生一个`tsconfig.json`的配置文件,每项配置都有说明,如下图所示: + +![tscofnig文件部分截图](./picFolder/tsconfig界面.png) + +主要用到的配置项如下: + +```javascript +{ + "compilerOptions": { + "module": "commonjs", //指定生成哪个模块系统代码 + "target": "ES2017", //目标代码类型 + "noImplicitAny": false, //在表达式和声明上有隐含的'any'类型时报错。 + "sourceMap": true, //用于debug,断点调试需打开 + "rootDir":"./", //需要编译的目录 + "outDir":"./dist", //编译后的js存放路径 + "watch":true //在监视模式下运行编译器。会监视输出文件,在它们改变时重新编译。 + "strict":true //严格模式 + }, + //需要监控的路径,非必要无需配置,有rootDir就够了 + "include":[ + "./" + ], + //需要排除的路径,非必要无需配置 + //排除监控目录 + "exclude":[ + "node_module", + "temp" + ] +} +``` + +### 3、编译 + +  执行`tsc -w`,将 ts 编译位 js 并输出到 dist 目录下,`-w`监控文件变动,自动编译。 + +### 4、断点运行 + +  首先添加 launch.json,如图所示: + +![添加配置](./picFolder/添加配置.png) + +选中 node 环境,然后将要调试的文件改为输出目录中对应的 js 文件,修改 program 属性: + +```json +"program": "${workspaceFolder}\\dist\\index.js" +``` + +最后**F5**运行即可断点调试。 + +### 5、热更新 + +  如何在修改文件保存后自动重启服务器,首先全局安装`nodemon`,然后在 test 根目录下编写 nodemon 配置文件--nodemon.json:(实际使用中不能带注释,需删除) + +```json +{ + "restartable": "rs", //重启的命令,默认是 rs + "ignore": [""], //忽略的文件后缀名或者文件夹,文件路径的书写用相对于 nodemon.json 所在位置的相对路径 + "verbose": true, //表示输出详细启动与重启信息 + "events": { + "start": "node ./dist/index.js", //子进程(即监控的应用)启动 + "crash": "", //子进程崩溃,不会触发 exit + "exit": "", //子进程完全退出,不是非正常的崩溃 + "restart": "" //子进程重启 + }, + "ext": "js json", //监控指定后缀名的文件,用空格间隔。默认监控的后缀文件:.js, .coffee, .litcoffee, .json。但是对于没有文件后缀的文件,比如 www 文件,我暂时找不到怎么用 nodemon 去监控,就算在 watch 中包含了,nodemon 也会忽略掉 + "watch": ["./src/**"], + "env": { + "NODE_ENV": "env", // env: 是开发环境; 运行环境 development; production 是生产环境 + "PORT": "3000" + }, + "legacy-watch": false //nodemon 使用 Chokidar 作为底层监控系统,但是如果监控失效,或者提示没有需要监控的文件时,就需要使用轮询模式(polling mode),即设置 legacy-watch 为 true,也可以在命令行中指定 +} +``` + +然后使用`nodemon --inspect nodemon.json`命令启动(--inspect 是 vscode 断点调试关键),接着在.vscode 目录中将 launch.json 修改为下面的代码: + +```json +{ + "version": "0.2.0", + "configurations": [ + { + "type": "node", + "request": "attach", + "name": "Node: Nodemon", + "processId": "${command:PickProcess}", + "restart": true, + "protocol": "inspector" + } + ] +} +``` + +最后调试页面启动调试,选择代码真实运行的进程,如下图所示: + +![vscode符加进程](./picFolder/vscode附加进程.png) + +  大功告成。。