自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(765)
  • 收藏
  • 关注

原创 第 2 次作业

编写 Dockerfile 将练习 2.2 编写的 httpserver 容器化Dockerfile.png将镜像推送至 docker 官方镜像仓库make push.png推送到 dockerhub .png通过 docker 命令本地启动 httpserver拉镜像_运行_访问.png通过 nsenter 进入容器查看 IP 配置...

2021-10-18 17:51:18 234

原创 MySQL 函数 | left & distinct

mysql> select count(distinct left(email,4))as L4, count(distinct left(email,5))as L5, count(distinct left(email,6))as L6, count(distinct left(email,7))as L7,from SUser;

2020-08-23 00:15:48 674

原创 MySQL 函数 | GROUP_CONCAT

把结果集中 seats_ids 列的值连起来SELECT GROUP_CONCAT(seats_ids) FROM mooc_order_t

2020-08-23 00:15:19 272

原创 MySQL 函数 | UNIX_TIMESTAMP

把时间变成时间戳UNIX_TIMESTAMP(o.order_time);

2020-08-22 12:30:48 193

原创 MySQL 函数 | DATE_FORMAT

DATE_FORMAT(o.order_time, '%y年%m月%d日')

2020-08-22 12:30:25 174

原创 Docker 常用命令

Volume查看容器的 volumesudo docker inspect mysql | grep Mounts -A 10Logs查看容器日志sudo docker logs mysql 2>&1 | grep PASSWORDDocker 本身安装 Dockersudo apt-get updatesudo apt-get install apt...

2020-08-19 02:41:16 123

原创 CAP

CAP 理论中的 C 和 AC 和 A 都是服务端对客户端读的不同承诺;A 承诺什么时候读都能读到数据,但是读到的数据有可能不是最新的;C 承诺的是每次读到的数据都是最新写入的值,要么就是读取失败;这里的 C 不是状态一致性,状态一致性是说,在客户端读的那一个时刻,数据在不同副本之间的值是一模一样的;CAP 理论在提出的时候,C 指的是状态一致性,此时理论还没被证明;CAP 理论在被证明...

2020-08-14 19:42:05 97

原创 Mybytis | 一对多

XML<resultMap id="getFilmInfoMap" type="com.stylefeng.guns.api.cinema.vo.FilmInfoVO"> <result column="film_id" property="filmId"></result> <result column="film_name" prop...

2020-08-06 19:46:13 154

原创 Ubuntu | FTP

下载安装sudo apt install vsftpd;创建用户sudo useradd ftpuser -m 这个用户是有自己的目录 /home/ftpuser 的;设置用户密码sudo passwd ftpuser;创建用户 ftpuser 的 FTP 根目录sudo mkdir /home/ftpuser/ftp_root;修改配置文件sudo ...

2020-08-06 19:45:28 126

原创 Dubbo | 负载均衡

预热预热是一个服务启动,到承接 100% 流量之间的一种状态;预热的越早期,服务分到的流量就越少;Dubbo 在做负载均衡的时候,会获取每个 Invoker 的权重,而权重的计算,会受预热时间的影响,预热的越早期,Invokder 计算得到的权重就越小,Invoker 被负载均衡算法选中的概率就越小;Dubbo 提供的 4 中负载均衡算法Random(默认)RoundRobin...

2020-07-28 23:06:11 99

原创 Dubbo | 多协议

Dubbo 支持的多种协议的对比特性dubboRMIHessian连接数单连接多连接多连接连接方式长连接短连接短连接传输层协议TCPTCPHTTP传输方式NIO同步传输同步传输适用场景数据包较小;消费者个数多;常规方式;数据包大小不一;消费者和提供者数量相差不大;数据包大小不易;消费者和提供者数量相差不大;什么时...

2020-07-28 18:26:21 86

原创 Dubbo | 启动检查

启动检查如果开启,那么 Consumer 启动的时候,如果 Provider 没启动,就会报错,Consumer 也起不起来;代码示例check = false,意思是 UserAPI 这个 Provider 就算没有启动,我 Consumer 启动的时候也不会报错;@Reference(interfaceClass = UserAPI.class, check = false)...

2020-07-28 18:12:02 76

原创 Prometheus

Prometheus 架构Prometheus 架构.pngPrometheus ServerPrometheus 的核心,做 Metrics 数据监控的,用数字表示的信息都可以用 Prometheus Server 采集,比如系统的流量,服务的响应时间;Prometheus Server 根据配置完成数据的采集、服务的发现、数据的存储;HTTP Servver:把收集到 ...

2020-07-27 22:12:23 149

原创 17 | Redis 与 Reator 模式有什么关系?

Redis 工作模式多个 Client 连接 Server;发送命令给 Sever;Server 返回结果给 Client;Redis 单进程 & 单线程在 Redis 6.0 之前是使用单进程;Redis 是使用单线程的;Redis 用单进程和单线程为何如此高效?影响 Redis 性能因素的不是 CPU,而是网络 IO 和内存;使用单进程和单线程是为了减少线程...

2020-07-25 23:30:33 157

原创 16 | 服务端缓存选型:Redis、Memcache

业务场景业务规模越来越大,服务部署的数据在越来越多;并发量也越来越大;业务放对数据的一致性也越来越高了;这种业务场景下,需要集中式缓存。Redis vs Memcache基于内存数据结构虚拟内存过期策略数据持久灾难恢复性能Redis是的List,Set 等多种物理内存用完,可以将不用的数据交换到磁盘有有有高Memcache是...

2020-07-25 22:45:15 111

原创 15 | Spring Cache 原理

Spring Cache 特点通过少量的配置注解就可以使得代码支持缓存;支持开箱即用,不需要再单独安装第三方缓存;支持 Spring Express Language;支持 AspectJ;支持自定义key 和自定义缓存的管理者,具有相当的灵活性和扩展性;Spring Cache 核心思想当我们调用一个缓存方法时,会把该方法参数和返回结果作为一个键值对存放在缓存中,等下次利用同...

2020-07-25 22:35:02 152

原创 13 | Guava Cache 原理

Guava CacheGuava Cache 是一种非常优秀的本地缓存解决方案,提供了基于容量,时间和索引的缓存回收方式。为什么要使用本地缓存相对于本地 I/O 来说:速度快、效率高;相对于 Redis 来说:Redis 虽然优秀,但受限于网卡等原因,远水解不了近渴;Guava Cache 的使用场景愿意消耗一些内存空间来提升速度,比如做报表的时候,把报表用到的数据,从 MySQ...

2020-07-25 17:27:14 144

原创 10 | 技术选型:Ehcache、Guava Cache、Spring Cache

问题场景一个系统经过压测发现并发能力不理想,需要加缓存,已知:对一致性要求不高,需要缓存的数据量也可控,问:该如何选择缓存框架?这个情况的话,用客户端缓存就行了,客户端缓存有很多框架可供选择:Ehcache、Guava Cache、Spring Cache;Ehcache 特点多级缓存策略,可以嵌入 Hibernate,Mybatis 中;缓存的数据可以放在内存或磁盘中;缓存的数...

2020-07-25 15:02:08 431

原创 09 | JSR 107 缓存定义规范

什么是 JSRJSR 是 Java Specification Requests 的缩写,意思是 Java 提案规范;2012 年 10 月 26 日 JSR 规范委员会发布了 JSR 107(Jcache API);Jcache 规范定义了一种对 Java 对象临时在内存中进行缓存的方法,包括对象的创建、共享访问、假脱机(spooling)、失效、各 JVM 的一致性等,可被用户缓存最...

2020-07-25 14:40:35 156

原创 08 | 服务端缓存的分类和介绍

服务端缓存的种类数据库缓存;平台级缓存;应用级缓存;数据库缓存数据库缓存是一种比较特殊的缓存,是数据库自身的缓存机制;比如 MySQL 的查询缓存 QueryCache,不过这种东西好像效果不是很好,只有在更新不频繁的时候才有效果,如果数据更新,那么缓存的数据也要重新加载,更新频率高的的,反而会影响性能 ,最新版的 MySQL 已经把这个功能给砍掉了;平台级缓存平台级缓存...

2020-07-25 14:28:24 175

原创 07 | 客户端缓存的分类和介绍

BS 架构页面缓存;浏览器缓存;移动互联网架构APP 自身使用的缓存;页面缓存含义页面自身对某些元素或全部元素进行缓存;服务端将静态页面或者动态页面进行缓存,然后可客户端使用;比如 HTML5 目前就支持页面的离线缓存和本地存储缓存;浏览器缓存浏览器缓存.png优点减少数据传输的冗余;减少服务器的负担;加快浏览器的加载速度;APP 缓...

2020-07-25 12:04:19 87

原创 06 | 从微服务架构看缓存

架构的一般演变路径单体架构 -> 集群架构 -> SOA 架构 -> 微服务架构微服务架构的特点系统服务独立拆分;微服务单一原则;优点服务拆分更细,服务可以重复使用;可以针对某个服务做性能扩展和优化;服务部署容易,业务之间相互影响较小,可以分别对不同服务做部署升级;缺点服务越来越多,不好管理;服务需要不断增加故障监听、故障治愈、故障预警功能才能从众...

2020-07-25 11:38:01 144

原创 05 | 从集群架构看缓存

集群架构的缓存演进架构一所有的 Tomcat 实例访问同一个集中式缓存;架构二将 Tomcat 实例按业务分类,不同的业务访问不同的集中式缓存;架构三采用本地缓存和集中式缓存的二级缓存架构,变化多的数据放在集中式缓存中,变化少的数据放在本地缓存中,这种情况下对数据的一致性要求不是那么高,允许短暂的,本地缓存和集中式缓存中的数据不一致;架构四对本地缓存和集中式缓存之间做...

2020-07-25 11:25:40 69

原创 04 | 单体架构看缓存

单体应用的架构Nginx;Tomcat;MySQL;本地缓存在 Tomcat 的内存中缓存数据,每个 Tomcat 实例中都有一份缓存;Map 或 CurrentHashMap;Ehcache 或 OSCache 这种第三方组件库;使用本地缓存的时候,一般缓存多的是从数据库中查询出来的数据;集中式缓存对数据一致性较高的数据放在集中式缓存中,比如 Memcache;...

2020-07-25 11:11:55 134

原创 03 | 缓存可以用来解决哪些问题

缓存最通用的解释就是可以进行高速数据交换的存储器;缓存与内存的区别缓存内存掉电是否丢数据丢丢物理结构是否相同部分内存、缓存框架(软件,比如 Guava、Redis)一般为物理内存条部署方式所在主机、独立部署所在主机缓存的几种淘汰策略FIFO | 先进先出如果一个数据最先进入缓存, 则应该最早被淘汰;LRU | 最不经常使用...

2020-07-25 11:00:09 178

原创 分布式缓存 | 内容总览

理论基础篇什么是缓存?缓存的应用场景;从架构的发展看缓存的使用;单体;集群;微服务;缓存有哪些分类,每个都是用来干什么的?客户端缓存;网络缓存;服务端缓存;缓存定义的规范 JSR 107 是什么?如何学习?动手学习篇以小例子来说明常见缓存框架的技术选型;每一个常见缓存框架的原理及使用;以小例子解读 Redis 常见命令;解读 Redis 6.0 多...

2020-07-25 10:30:17 97

原创 Sentinel | 配置持久化

Sentinel 的工作模式sentinel 工作模式.png在 Sentinel 客户端(微服务)中用代码写的配置,在启动后,当有第一次流量进来的时候,会推送给 Sentinel-Dashboard;在 Sentinel-Dashboard 中的配置,会被推送到 Sentinal 客户端(微服务);默认情况下,不论 Sentinel-Dashboard 中的配置还是 Sen...

2020-07-23 20:58:12 919 1

原创 Sentinel | 热点规则 | 系统规则

热点热点就是经常访问的数据;比如商品接口的 QPS 限定的是 100,有一天要秒杀,带着秒杀商品 id 的请求的 QPS 限制在 50,这样还能有 50 的 QPS 用来访问其他的商品;这就提出了一个去求,要能根据请求的参数来做限流,比如请求带的参数是热点参数,就对这个请求应用特殊的限流规则;对携带非热点参数的请求,走另一个限流规则;Sentinel 实现根据参数指定不同的限流规则(热...

2020-07-23 16:40:18 294

原创 Sentinel | 降级

下游服务挂了造成雪崩微服务间的依赖.png请求进来访问 A,A 需要调 B,C,D;D 挂了;A 调 D 的线程就挂起;不停的有请求访问 A,A 就不停的开新线程调 D;当 A 开的线程数超过阈值,A 也失去响应了;依赖 A 的服务慢慢的也失去响应,造成连锁的反应;根上其实就是服务 D 不行了,但 D 造成了和它有依赖关系的服务都不行了;这就是雪崩;要避免雪崩,就...

2020-07-23 16:09:42 112

原创 Sentinel | 限流

SentinelSentinel 是面向分布式服务架构的轻量级流量控制组件;可视化、集中化、动态化地管理分布式服务架构下微服务的限流、熔断、降级规则;非 Springboot 方式 | 使用步骤依赖<dependency> <groupId>com.alibaba.csp</groupId> <artifactId>s...

2020-07-23 12:43:25 82

原创 微服务 & SSO

三种架构前后端半分离架构前后端半分离架构.png前后端分离架构前后端分离架构.png将 Postman 升级成前端服务器将 Postman 升级成前端服务器.png前后端分离架构 | 实现概述admin 项目的角色是:前端服务器;admin 项目原本应该是个 Node.js + Angular 的项目,这里使用 Springboot + An...

2020-07-21 12:06:30 325

原创 OAuth2 表结构字段说明

autoapprove - 浏览器直接发请求 /oauth/authorize 到认证服务器,Spring Security 的默认配置,会要求在请求 /oauth/authorize 到达前先输用户名密码,用户名密码的正确与否,由自己实现的 com.lixinlei.security.auth.oauth2.config.UserDetailsServiceImpl 验证;验证通过后,还会有...

2020-07-18 01:02:58 892

原创 OAuth2 的四种授权模式

OAuth2 四种授权模型Resource owner password | 手机 APPResource owner password.png适用于 APP,APP(客户端应用,对应于 Web 应用的 Angular + Node 开发的前端应用) 是自己开发的,可以完全信任;这种方式不适用于 Web 应用,因为 Web 应用的使用形态,username 和 passwor...

2020-07-17 19:33:15 241

原创 Angular CLI 常用命令

ng -version创建项目ng new demo01 --skip-install 不要在这里下载依赖包,慢;cd demo01/cnpm install 把依赖包下载下来;ng serve 启动项目;

2020-07-15 16:24:47 99

原创 Angular CLI 安装

npm install -g @angular/cli

2020-07-15 16:24:30 110

原创 cnpm 安装

用 root 用户安装:npm install -g cnpm --registry=https://registry.npm.taobao.org

2020-07-15 16:24:18 330

原创 npm 常用命令

npm initnpm install jquery npm i jquerynpm uninstall jquery npm un jquerynpm update jquerynpm install 把 package.json 中的依赖装一遍;

2020-07-15 16:24:09 78

原创 npm 安装

node 装好,bin 目录下就有 npm 了;linux 装 node,直接解压就行了;

2020-07-15 16:23:51 108

原创 网关安全

微服务架构下的安全问题安全处理和业务逻辑耦合,增加了复杂性和变更成本;随着业务节点增加,认证服务器压力增大;多个微服务同时暴露,增加了外部访问的复杂性;引入网关的安全架构引入网关的安全架构.png网关的限流可以使用开源库 spring-cloud-zuul-ratelimit 实现;网关限流的缺点会和后端的业务系统耦合;如果 A 和 B 能承载的流量都是 ...

2020-07-15 10:19:45 291

原创 OAuth2 配置 & Token 存储的持久化

大致步骤先建表,Spring Security OAuth2 有一套表结构;填数据到 oauth_client_details;删 inMemory() 的代码;配置数据源(starter-jdbc,mysql-connector);把 JdbcTokenStore 暴露成 Bean tokenStore;把 tokenStore 配置到 endports 中;...

2020-07-13 23:34:51 315

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除