Spring cloud

一、Spring Cloud Config

1.自己维护client和server

  1. 把配置文件放在Git Repository中。
  2. Config Server从Git repository中读取配置信息。
  3. 其他客户端再从Config Server中加载配置文件

缺点:没法自动刷新,需要重启服务才能读到最新的配置,所以需要引入actuator可以自动刷新。

2.actuator实现自动刷新

每次发布配置后,需要访问一个接口,才会触发配置的更新。

3.Spring Cloud Bus

通过引入mq,可以达到自动更新的目的。目前官方支持kafka和RabbitMQ。

4.结合 Eureka 使用 Spring Cloud Config

通过将Spring Cloud Config注册在Eureka中,可以搭建集群实现高可用。注:Eureka 是 Netflix 出品的用于实现服务注册和发现的工具。

  1. 把配置文件放在Git Repository中。
  2. Config Server从Git repository中读取配置信息。
  3. Config Server将自己注册到Eureka中
  4. Client从Eureka中获取Config Server的信息
  5. Client访问Config Server,加载配置信息

参考:https://blog.csdn.net/weixin_44335140/article/details/115801223

二、spring data jpa

总的来说JPA是ORM规范,Hibernate、TopLink等是JPA规范的具体实现,这样的好处是开发者可以面向JPA规范进行持久层的开发,而底层的实现则是可以切换的。Spring Data Jpa则是在JPA之上添加另一层抽象(Repository层的实现),极大地简化持久层开发及ORM框架切换的成本。

参考:https://blog.csdn.net/qq_42495847/article/details/107991361

MySQL实战学习总结

一、MySql架构

1.redo log和binlog

  • redo log 是 InnoDB 引擎特有的,而binlog 是 MySQL 的 Server 层实现的,所有引擎都可以使用
  • redo log 是物理日志,记录的是“在某个数据页上做了什么修改”;binlog 是逻辑日志,记录的是这个语句的原始逻辑,比如“给 ID=2 这一行的 c 字段加 1 ”。
  • redo log 是循环写的,空间固定会用完;binlog 是可以追加写入的。“追加写”是指 binlog 文件写到一定大小后会切换到下一个,并不会覆盖以前的日志

2.redo log和binlog协助处理流程

使用两阶段提交。先写redo log为prepare,后写binlog,然后更新redo log为commit状态。

3.InnoDB 的 redo log细节

简单说就是固定大小的一块地址,可以循环写,有两个指针,一个代表写入,一个代表擦除(持久化到DB了)

注:只要redolog有了,那么数据就不会丢了。

 

4.InnoDB 的索引模型

InnoDB 使用了 B+ 树索引模型,每一个索引在 InnoDB 里面对应一棵 B+ 树
左边为主键索引(聚簇索引),主键索引叶子节点存储的是整行数据;右边为非主键索引(普通索引、二级索引),叶子节点存储内容是主键的值。
使用主键索引查询可以直接获得数据,而使用普通索引需要先搜索得到主键的值,然后再根据主键查询主键索引得到数据(这个过程叫回表)。

 

Spring

一、Spring三大特性

IOC控制反转、AOP面向切面编程、DI依赖注入。

1.IOC控制反转

将创建对象的权利交给Spring来进行处理,可以减低计算机代码之间的耦合度。

  • 作用:解耦(减低程序间的耦合性)。
  • 优点:解耦,降低程序间的依赖关系;
  • 缺点:使用反射生成对象,损耗效率。

注:最常见的方式叫做依赖注入(Dependency Injection,简称DI),还有一种方式叫“依赖查找”(Dependency Lookup)。

2.AOP面向切面编程

将纵向重复的代码(公共行为和逻辑)横向抽取出来并封装为一个可重用的模块,这个模块就是“切面”(Aspect)。简单的说就是将程序重复的代码抽取出来,在需要执行的时候,使用动态代理的技术,在每个流程里面都能执行到,而不用重复开发代码。

  • 优点:减少重复代码;提高开发效率;维护方便。
  • 主要用于:权限认证、日志、事务处理、埋点等。

3.DI依赖注入

  • 创建对象实例时,为这个对象注入对应属性值。
  • Spring的IOC有三种注入方式 :构造器注入、setter方法注入、根据注解注入。

 

二、Spring MVC 和Spring boot

都属于spring这个轻量级java开发框架。springMvc属于WEB开发的MVC框架,包含模型、前端视图、控制器(也就是对应逻辑)。springBoot框架相对于springMvc框架来说, 更专注于开发微服务后台接口,不开发前端视图,简化了配置流程,不需要配置xml等。

Hadoop

一、背景

一个任务:需要计算一个100M的文本文件中的单词的个数。写程序可以解决。

需要计算1T的文本文件汇总单词的个数,就需要有Hadoop了。

所以,简单说Hadoop就是存储海量数据和分析海量数据的工具。

二、Hadoop

Hadoop是Apache基金会开发的分布式系统基础架构。用java编写的,在分布式服务器集群上存储海量数据并运行分布式分析应用的开源框架,其核心部件是HDFS与MapReduce。

1.Hadoop框架的核心

HDFS:一个高度容错性的分布式文件系统,为海量的数据提供了存储。可以理解为一个分布式的,有冗余备份的,可以动态扩展的用来存储大规模数据的大硬盘。

MapReduce:为海量的数据提供了计算。可以理解成是一个计算引擎,按照MapReduce的规则编写Map计算/Reduce计算的程序,可以完成计算任务。

 

2.Hadoop作用

大数据存储:分布式存储

日志处理:擅长日志分析

数据挖掘:目前比较流行的广告推荐,个性化广告推荐

分布式事务框架

一、阿里开源框架Seata

1.正常提交

2.回滚

 

  • Seata实现2PC要点

1、全局事务开始使用 @GlobalTransactional标识 。

2、每个本地事务方案仍然使用@Transactional标识。

3、每个数据都需要创建undo_log表,此表是seata保证本地事务一致性的关键。

二、TCC模型

  • Try 阶段:对应 2PC 中一阶段的准备提交事务(Prepare);
  • Confirm 阶段:对应 2PC 中二阶段事务提交(Commit)。默认 Confirm 阶段是不会出错的,只要 Try 成功,Confirm 一定成功;
  • Cancel 阶段:对应 2PC 中二阶段事务回滚(Rollback)。

1.空提交

对于空提交,出现的情况为:第一阶段TM调用RM超时或者下游返回明确失败,此时TM仍旧调用下游执行提交的第二阶段,这对于RM来说,由于并没有Prepare阶段,然后收到了Commit请求,这就是一次空提交,对于TCC模型来说,空提交为系统的bug,需要业务进行处理。

2.空回滚

如图所示,TM在调用下游服务的一阶段Prepare操作时,因为超时而导致下游服务并没有收到请求,此时,TM会触发二阶段回滚操作,调用下游服务执行Rollback操作,因为下游服务在没有收到Prepare请求的情况下收到Rollback请求,这种场景被称为空回滚。 空回滚在实际使用中可能会出现,而且被视为正常情况,在处理业务逻辑时需要处理。

3.事务悬挂

如图所示,TM在调用下游服务的一阶段Prepare操作时,可能因为各种原因而TM没有收到下游响应,此时TM会执行Rollback操作。而对于下游来说,可能存在的一种情况是:下游服务先收到了Rollback请求,执行了空回滚操作,然后又收到了Prepare请求,然后执行了Try操作,此时,该下游服务的事务状态将永远存在于Prepare阶段,这种情况就叫做事务悬挂。 对于事务悬挂,目前处理的做法是设置事务悬挂检测程序,检测下游服务处于Prepare状态而上游服务处于Rollback的事务,调用下游服务执行二次Rollbacki操作。

三、基于消息中间件

1.A处理事务时,先向消息中间件发送一条消息,中间件进行消息持久化并返回应答; 2.A收到应答后开始处理并提交事务,提交成功后向消息中间件发送Commit请求(此时消息有可能丢失,如果发丢,由消息中间件的事务回查机制完成) 3.消息中间件收到Commit请求后便向B投递该消息; 4.B收到后开始处理事务,处理成功后向消息中间件返回应答 5.如果向B投递的消息未送达,则消息中间件重新投递该消息

通过以上流程实现了类2pc的流程,此时的消息中间件充当了TM的角色。

注:消息中间件有一个回查任务,定期扫描非最终态的消息,进行回查

四、其他

1.RocketMQ事务消息

执行流程:
1、Producer向Broker端发送Half Message;
2、Broker ACK,Half Message发送成功;
3、Producer执行本地事务(executeLocalTransaction);
4、本地事务完毕,根据事务的状态,Producer向Broker发送二次确认消息,确认该Half Message的Commit或者Rollback状态。Broker收到二次确认消息后,对于Commit状态,则直接发送到Consumer端执行消费逻辑,而对于Rollback则直接标记为失败,一段时间后清除,并不会发给Consumer。正常情况下,到此分布式事务已经完成,剩下要处理的就是超时问题,即一段时间后Broker仍没有收到Producer的二次确认消息;
5、针对超时状态,Broker主动向Producer发起消息回查(checkLocalTransaction);
6、Producer处理回查消息,返回对应的本地事务的执行结果;
7、Broker针对回查消息的结果,执行Commit或Rollback操作,同Step4。

 

 

雅思每日任务

一、个人

1.口语

  • 每天背三句
  • [背词+听+影子跟读]P1P2P3素材
  • P1、P2写答案并录音练习
  • [背+复述+模仿]P3的100道题目及重点词句
  • 复习课件
  • 8句话扩展每天练一遍

2.阅读

  • 背诵538同义替换 30分钟
  • 背诵阅读14天同替 20分钟
  • 做一套题
  • 复习课件,背诵对应积累的词

3.听力

  • 语料库50分钟(看三遍):95%正确率  (p0)
  • 点听:用c8或者c14  (p1)
  • 复听:用c8或者c14 (p2)
  • 做一套题:一步一步练,先练c11 12 13 15 的s1和s4,后练习s2、s3,分析题干和点复听。 (p2)
  • 考前一周集训:地图训练  (p1)
  • 背诵179同义替换 20分钟 (p2)
  • 复习课件

4.写作

  • 写一篇作文
  • 复习课件

二、官方

1.听力

  • 复习课件——最为重要——方法论一定要超级熟练背诵(中文+英文);8句话扩展每天练一遍
  • 每天背三句
  • P1P2P3素材背词、反复听、努力且不纠结地进行影子跟读
  • 评分标准解析视频课+做笔记视频课
  • 阅读文章练习
  • 准备并练习答题
    • P1不要背答案,自己练习录音回答,听自己的回答、改错、提升
    • P2不要背答案,可以直接录音回答,也可以把自己的答案写下来之后,再练习回答
    • P3练习初期可以背/复述/模仿我的回答,充分模仿我的回答(词汇、句型、思路)

 

三、资料

1.口语每天推8句话

  • what I love the most about my neighborhood is all the good amenities there
  • for me, the best way to relax is just hanging out with my parents
  • my primary school was so close to our house that I would just walk to school every day
  • I should definitely do more to protect the environment
  • we see advertisements everywhere
  • the house that I grew up in was kind of big
  • sitting in the back of the car appeals to me more cuz I can do my own thing back there
  • I haven’t planted any flowers, but I’ve kept some

从这八句话开始推,每天推一遍,每一天推出来的最好不一样

雅思口语八

一、part3无观点怎么办

注:p3有观点就照着观点进行扩展阐述,没观点千万不要硬想观点,会造成流利度下降,就说第一反应+why,然后进行扩展。

1. Ask the examiner to repeat or clarify the question

2.First reaction+why

3.Focus on what you know

1. Ask the examiner to repeat or clarify the question

  • Sorry, could you say it again?
  • I’m sorry, would you please repeat the question?
  • What do you mean by …?
  • I’m not sure what … means. Could you explain it please?
  • I’m trying to get it right. Are you asking me …?

 

2.First reaction+why

  • That’s a tough/tricky/difficult question.
  • That’s an interesting question.
  • I’m not sure about this.
  • I don’t know much about this.
  • I’ve never thought about it before.
  • Oh, I have thought about it before.
  • I don’t think it’s a big problem at all.
  • I’m not sure if I agree with you.
  • I don’t suppose they should take a gap year after high school.

例子:

  • Why do most people smile in photographs?
  • How can you tell whether a website is reliable or not?
  • What are the consequences if children don’t like to share?
  • Are films a waste of money?

回答示例:

Q: Why do most people smile in photographs?

​Why do most people smile in photographs? ​Um, why do they smile? ​Well…​ Really, do most people smile in photos? Cuz I know some people, including myself, who don’t like to smile while posing for a picture. ​But perhaps…​ ​um…​ ​Yeah, most people do smile, and honestly I’ve never thought about why, because it seems like this is just normal, common and it’s customary for people to do it. ​When someone sees other smile, they will just do the same. not me, but most people are like that.

 

Q:​ How can you tell if a website is reliable or not?

​Oh my god, this is such a hard question, because/cuz I don’t study in this area, and actually, most people don’t know much about this. When we use the internet, we just go to a website, click on some links, hoping that it’s safe. But if it’s not, if it’s dangerous, we wouldn’t know beforehand. So in my opinion, it’s not us, the individuals, that should learn to tell whether a website is reliable or not, It should be the government that regulates the internet.

 

Q: Are films a waste of money?
um.. What kind of question is that? Is anything a waste of money? Are sports useless.. Sports, books, music, buildings, and films are what We’ve had for a long time, and definitely they exist​ for a reason. So, films are undoubtedly not a waste of money. They serve a purpose.

3.Focus on what you know

知道里面的什么说什么

4.重点句型

  • as for …/ in terms of …/ when it comes to …  :关于
  • what I can think of right now is/are …
  • one … that comes to mind is …
  • one … that pops into my mind is …
  • a few things I can think of now are …

5.P3部分

  • P3很重要!
  • 方法论超熟练背诵
  • P3素材大量练习
    • 背词
    • 反复听我的回答
    • 努力进行影子跟读
    • 练习回答(初期以模仿我的回答为主)

6.每天练习

  • 复习课件——最为重要——方法论一定要超级熟练背诵(中文+英文);8句话扩展每天练一遍
  • 每天背三句
  • P1P2P3素材背词、反复听、努力且不纠结地进行影子跟读
  • 评分标准解析视频课+做笔记视频课
  • 阅读文章练习
  • 准备并练习答题
    • P1不要背答案,自己练习录音回答,听自己的回答、改错、提升
    • P2不要背答案,可以直接录音回答,也可以把自己的答案写下来之后,再练习回答
    • P3练习初期可以背/复述/模仿我的回答,充分模仿我的回答(词汇、句型、思路)

 

雅思口语七

一、p2整体

1.p2整体逻辑非常重要:从上到下,逐点回答,单点扩展,不要串点,每个段落第一句是这个段落主题句,能扩展的在段落内部进行充分扩展。实在没得说回顾过去、展望未来,再不行说another one

这些都做到后p2会简单很多。

 

2.你不需要完美,你只需要进步。

 

3.p2练习方法

  • 把这道题的200+个字全部写下来,然后朗读,回答
  • 或者:写关键字,录音,答题 重复n次

二、part3

1.介绍

考试:4-5mins,2 topics

涉及方面:abstract、social、national、international、universal等大众、社会、抽象内容

2.回答方法

有观点:进行充分的扩展(推),不要罗列观点。扩展方法同前面所学,由宽泛到具体(时间、地点、降级、列举等)。

无观点:只要在路上,一定有方向

注:不要直接上来就用个人例子,因为part3是大众化的问题,推的过程中可以用个人例子(偶尔用,别太多)。

三、part3好的句子积累

I do believe there are many ways we can improve our

memory,  and one of them, from what I’ve heard, is learning a foreign

language.

 

四、作业

1.复习课件、背诵方法论部分
2.上课看到的p3题目,写出自己回答,练习张嘴说出回答
3.8句话,每天推一遍
4.每日背三句
5.评分标准解析每三天看一遍,p2做笔记视频课多看多练
6.音频素材,每天大量听和跟读
7.自己根据文章创造part3的问题,看考官可能会出哪些题目,写尽量的多

 

雅思口语六

一、p2第一段开头语

1.如果是名词或者动名词类

第一段:名词?动名词?

  • The … that I’m going to talk about/describe is …
  • I’m going to describe …
  • I’m going to talk about …

例子:

  • The hotel that I’m going to describe is one in Shanghai, which is the best hotel I’ve ever stayed at.
  • I’m going to describe my next-door neighbor, an English teacher at … University.
  • I’m going to talk about drinking coffee, which is a big part of my life.

2.如果是事件或者经历类

问题:

describe a time…
describe an occasion…
describe a situation …
describe a … experience

注:上面的提问都用下面的形式回答。

  • 第一段:事件、经历?
  • A/The time that I’m going to talk about/describe is when …
  • I’m going to describe a/the time when I did sth
  • I’m going to talk about a/the time when I did sth

注:如果是多次发生,描述其中的一次用a,如果是只有一次发生,那么用the。

例子:

  • The time that I’m going to talk about is when I attended my cousin’s wedding ceremony.
  • I’m going to describe the time when I lost my Kindle.
  • I’m going to talk about a time when my dad gave me some valuable advice.

 

如果要重复题目,那么需要给出新鲜信息,不要只是重复。如 问题:describe a time when you got up early

I’m going to describe a time when I got up early.

 

二、p2二三四段开头句

  • 念题+回答
    • How I know this country … well, honestly …
    • What I would like to know about Korea … um …

注:最多念两次,最好念一次

  • 直接开头,回答+扩展
    • I’d like to know more about this country mainly because …
    • The person that went with me was …

 

做笔记非常重要

 

三、tips

1.做笔记非常重要

2.没的说了,考官还让接着说怎么办

  • 回顾过去
  • 展望未来
  • another one???

回顾过去

随便编一个和这个题目有关系(听说的、自己做的、和别人聊的、看到的…)的第一次或上一次的经历。

  • 上一次、第一次
  • 时间、地点、人物、事件、感受
  • 细节、细节、细节
  • 注意过去式
    • Actually/In fact, I … several days ago/a couple of weeks ago …
    • the first/last time I did sth was …
    • I remember (clearly/vividly/distinctly) that …

 

展望未来

展望未来是描述下一次的,一定要具体,要确切的未来,时间要具体,甚至这个事要发生的时间离考试很近。展望未来千万不要虚无缥缈。

  • Speaking of …;  By the way …;  That reminds me …
  • sth is   around the corner / approaching / coming up
  • I’m going to / I will / I plan to / I’m planning to …
  • I believe / I’m sure/I’m convinced that …
  • It’s likely that …
  • Hopefully …
  • I’m looking forward to it / ving
  • I’m pretty excited about it
  • 时间、地点、人物、事件、感受
  • 细节、细节、细节
  • 注意将来时态

问题:

  • describe a time when you waited in line for a long time
  • describe a part of a city or town you enjoy spending time in
  • describe a time when your computer broke down

式例:

well,speaking of this park ..um,since i don’t have anything planned this afternoon,i think i’m just going there again after lunch.my mom will get our lunch ready at 12:00 and then i think i’m going to this park around 1 pm, ideally with a couple of my friends,but if they’re not available,i will go there alone,and take a walk or read a book on one of those benches. i think it’s going to be pretty enjoyable.

四、作业

1.复习课件、背诵方法论部分
2.上课练过的题目,写出自己回答,练习张嘴说出回答
3.8句话,每天推一遍
4.每日背三句
5.评分标准解析每三天看一遍,p2做笔记视频课多看多练
6.音频素材,每天大量听和跟读
7.阅读文章按照要求学习

 

雅思口语五

一、p2

1.p2要奔着两分钟说

2.p2答完不会马上进入p3,会有个rounding off question,rounding off question圆滑过渡问题:一两句话结束,不要扩展。

3.tips

  • 不要纠结“预测”
  • 不要纠结“是否练完”

4.布局谋篇-整体

  • 从上到下
  • 逐点回答
  • 单点扩展
  • 不要串点(尽量)

串点?

like/as I said, like/as I mentioned earlier, like/as I said at the beginning, I actually talked about this just now …)

二、tips

how you know = when you know

三、作业

1.复习课件、背诵方法论部分
2.p2题目,写出自己回答,练习张嘴说出回答
3.8句话,每天推一遍
4.每日背三句
5.评分标准解析每三天看一遍
6.音频素材,每天大量听和跟读
7.阅读文章按照要求学习

总结:写p2,自己开口练;每日背三句;阅读输入;听+跟读。