能力说明:
精通JVM运行机制,包括类生命、内存模型、垃圾回收及JVM常见参数;能够熟练使用Runnable接口创建线程和使用ExecutorService并发执行任务、识别潜在的死锁线程问题;能够使用Synchronized关键字和atomic包控制线程的执行顺序,使用并行Fork/Join框架;能过开发使用原始版本函数式接口的代码。
能力说明:
掌握计算机基础知识,初步了解Linux系统特性、安装步骤以及基本命令和操作;具备计算机基础网络知识与数据通信基础知识。
码中自由一片天地。。。
在SpringBoot中,SpringApplication启动时,会按照以下列表按优先级排序(在列表较高位置定义的属性会覆盖在较低位置定义的属性)去查找并加载application.properties文件,并从文件中加载属性,并将其添加到Spring中Environment:
SpringBoot应用中可以配置应用上下文路径及访问的端口。 默认的情况下,SpringBoot应用的应用上下文路径为空,访问端口默认是8080。
SpringBoot中提供了一个随机值属性源RandomValuePropertySource可以给配置文件自动赋值随机数
SpringBoot中可以使用使用@Value注解注入单个应用程序参数,很方便的在业务类中使用。
日常项目中,很多业务场景会用到监听器,比如在Service中处理业务时,我们需要记录一个操作的日志到数据库中,我们怎么实现呢?
在ApplicationContext创建之前,侦听器怎么注册
SpringBoot在启动时会默认加载一个banner-横幅图标,默认加载的是框架本身默认的样式,如果我们要修改成个性化的怎么操作呢?
什么是SpringBoot呢?用它能干嘛呢?为啥要用它,有啥好处呢?怎么构建呢?
这篇记录连接和操作Zookeeper的工具类,方便以后创建项目时可以直接CV。
在zkCli用命令来查看一下Zookeeper的节点等信息。
Zookeeper是一个典型的分布式数据一致性的解决方案,分布式应用程序可以基于它实现诸如数据发布/订阅、负载均衡、命名服务、分布式协调/通知、集群管理、Master 选举、分布式锁和分布式队列等功能。
Apache kafka是一个分布的、分区的、复制的提交日志服务,它使用独一无二的设计,提供了消息系统功能。它提供了类似于JMS的特性,但是在设计实现上完全不同,此外它并不是JMS规范的实现。kafka对消息保存时根据Topic进行归类,发送消息者成为Producer,消息接受者成为Consumer,此外kafka集群有多个kafka实例组成,每个实例(server)成为broker。无论是kafka集群,还是producer和consumer都依赖于zookeeper来保证系统可用性集群保存一些meta信息。
SpringBoot中集成ActiveMQ,需要先安装一个ActiveMQ,所以先记录下在本地安装的步骤。
在Spring Boot中,我们可以通过配置来自定义一个属于我们自己的RedisTemplate。
在Spring Boot中,我们可以通过配置来自定义一个属于我们自己的RedisTemplate。
SpringBoot提供了redis的starter
redis的一些命令
Redis 事务可以一次执行多个命令, 并且带有以下三个重要的保证: 批量操作在发送 EXEC 命令前被放入队列缓存。 收到 EXEC 命令后进入事务执行,事务中任意命令执行失败,其余的命令依然被执行。 在事务执行过程,其他客户端提交的命令请求不会插入到事务执行命令序列中。
Redis 提供了消息的发布与订阅功能,发布订阅 (pub/sub) 是一种消息通信模式:发送者 (pub) 发送消息,订阅者 (sub) 接收消息。 Redis 客户端可以订阅任意数量的频道,支持多个频道订阅。
redis的数据类型有多种:string(字符串),hash(哈希),list(列表),set(集合)及zset(sorted set:有序集合)。
在 Redis 中,Redis 的根目录中有一个配置文件(redis.conf)。 通过 Redis CONFIG 命令获取和设置 Redis 配置。
安装redis
记录下使用Apache Jmeter工具模拟并发来压力测试的过程。
Spring Cloud 提供了Spring Cloud Config来进行集中式配置管理。
使用Feign来实现类似于昨天Ribbon调用其他服务接口。
SpringCloud Ribbon是SpringCloud基于Netfix Ribbon实现的一套客户端负载均衡工具。
spring cloud中的微服务网关,Spring Cloud Netflix下的路由器和过滤器:Zuul。
Hystrix 就是断路器,也叫熔断器。
搭建一个eureka client项目来注册到eureka server。
使用Spring Cloud的开源子项目Spring Cloud Netflix来管理服务的注册和发现。
git 公钥配置
今天汇总下学过的设计模式。
访问者模式(Visitor Pattern)就是封装一些作用于某种数据结构中的各元素的操作,它可以在不改变这个数据结构的前提下定义作用于其内部各个元素的新操作。通过访问者类改变元素类的执行算法,属于行为型模式。
模板模式(Template Pattern)就是在一个方法中定义一个算法的骨架,而将一些步骤的实现延迟到子类中,使得子类可以在不改变一个算法的结构前提下即可重定义该算法的某些特定步骤。
状态模式(State Pattern)就是一个对象的行为会随内部状态变化而发生改变。也属于行为型模式。
状态模式(State Pattern)就是一个对象的行为会随内部状态变化而发生改变。也属于行为型模式。
备忘录模式(Memento Pattern)就是通过一个备忘录类专门保存一个对象的某个状态,使得该对象可以随时恢复到保存的这个状态。
中介者模式(Mediator Pattern)就是用一个中介类将多个对象和类之间的交互全部放到该类中来处理,这样使得对象之间不需要显式的相互通信,降低代码的耦合性。也属于行为型模式。
迭代器模式(Iterator Pattern)就是不需要知道集合对象的底层内部逻辑,只通过访问一个方法就可以顺序访问集合对象的各个元素。属于行为型模式。
策略模式(Strategy Pattern)就是一个类的行为或其算法封装起来,在运行时可以更改,相互替换,最终达到何种目的,取决于调用者传入的要求条件。属于行为型模式。
命令模式(Command Pattern)是一种数据驱动的设计模式,它属于行为型模式。
责任链模式(Chain of Responsibility Pattern)就是在一个请求出去后,将请求的接受对象串为一个链路。请求对象只负责将请求发送出去,不管这个链路中哪个对象接受处理,将请求的发送者和接收者进行解耦。属于行为型模式。
观察者模式(Observer Pattern)定义了一种对象间一对多的依赖关系,一个主题目标对象能被多个观察者对象同时监听,使得每当主题目标对象状态变化时,所有依赖它的对象都会得到通知并被自动更新,属于行为型设计模式。
原型模式(Prototype Pattern)是用于创建重复的对象,同时又能保证性能。也属于创建型模式。就是使用原型实例指定待创建对象的类型,并且通过复制这个原型来创建新的对象。
建造者模式(Builder Pattern)属于创建型模式,也是一种创建对象的方式。其目的就是将一个复杂对象的构建与其表示分离,使得同样的构建过程可以创建不同的表示。原理就是使用多个简单的对象一步一步构建成一个复杂的对象。
抽象工厂模式是工厂方法模式的升级版本,工厂方法模式的工厂是创建出一种产品,而抽象工厂是创建出一类产品。
工厂方法模式:是简单工厂方法模式的升级版本,为了克服简单工厂方法模式的缺点而生(简单工厂模式增加新产品每次都要修改静态工厂类),作用和简单工厂方法完全一样。为每一种产品生成一个对应的工厂,从而替换掉简单工厂方法模式中那个静态工厂方法。
工厂模式(Factory Pattern)就是不通过new关键字而使用工厂类来创建对象,能够让创建对象变得简单而且更方便的修改对象。属于创建型模式。它提供了一种创建对象的最佳方式。
代理模式(Proxy Pattern)就是提供一个代理对象,这个对象可以作为其他对象的代理来控制对其他对象的访问。一个类代表另一个类的功能。属于结构型模式。
享元模式(Flyweight Pattern)就是搞一个缓存池,找对象先在池中找,如果未找到匹配的对象,再创建新对象。通过重用现有的同类对象减少创建对象的数量,以减少内存占用和提高性能。也是属于结构型模式。