• 2021年末总结


    • 写工作日志时,突然意识到我写下的是:2021-12-31,一年的时间又溜走了,一时间百感交集,回忆了一下这一年做了些啥、学了些啥,虽然做了不少事,但还是感觉怅然若失。

    回顾下这一年干了啥:

    一、先说学习上吧

    1. 上半年面了一家小公司给我打击的不行,买了本书花了俩月把spring源码撸了一遍。

    不敢说搞完吸收了多少,最起码使用起来的还是很熟练的,出了bug能快速定位问题,而不是拷一段异常信息去网上搜,以及对spring相关api更加熟悉了,得到了很多非常好用的轮子。
    存在的不足是,学习广度还是不够、也不够细致,只是学习了核心模块的主要逻辑,剩下的在使用中慢慢去拓展吧。

    2. 学习了一下设计模式:Head First设计模式。

    这本书讲得很浅,我愿意称为最适合设计模式入门的书;
    学习设计模式的初衷也是因为工作中碰到的问题,以前的代码设计很差,导致频繁修改代码,搞清楚设计模式有不小的帮助。

    3. mysql之Innodb

    由于工作中碰到一些性能问题,又花了俩月搞了一本Mysql-Innodb引擎存储的书,把mysql存储引擎撸了一遍。
    书确实很强,虽然实际应用到的场景不多,看完真的受益匪浅;核心内容:索引、锁、事务。

    4. 刷题

    letcode 刷了几道题,效率颇低。

    5. 学习&使用消息中间件RocketMQ,对底层的学习暂时留白;

    云印象:

    • 削峰填谷(主要解决瞬时写压力大于应用服务能力导致消息丢失、系统奔溃等问题)

    • 系统解耦(解决不同重要程度、不同能力级别系统之间依赖导致一死全死)

    • 提升性能(当存在一对多调用时,可以发一条消息给消息系统,让消息系统通知相关系统)

    • 蓄流压测(线上有些链路不好压测,可以通过堆积一定量消息再放开来压测)

    个人印象:

    • rocketmq 支持集群、自定义队列数;

    • 支持并发消费、顺序消费、延时消费,根据时间重置位点重新消费;

    • 单一topic支持,不同的消费者组同时消费,就是说一条消息可以被多个不同的任务消费;[数据交换利器啊,我司产品主要面向政府部门业务系统,往往涉及大量的数据交换,结构相似的数据同时推送多处]

    6. 学习&使用阿里开源中间件canal

    • 它的实现来自于对mysql二进制日志的监听并转发,canal模拟了mysql主从模式中的 "从"。

    • 它的好处之一是快速的数据交换。

    当然它也有不足

    • 当表结构发生变化时,我的建议是直接跳过这部分语句的监听;且,重启数据库,重启canal;

    我碰到过的问题是:

    1. 新增字段后,canal 无法监听到新的字段数,导致解析异常,重启mysql后得到解决;

    2. 主键属性变化后(变更类型,依然存在显式定义的主键),canal解析的消息里确实了主键属性的描述信息:pkNames

    7. 学习&使用 Elasticsearch

    • 对聚合查询支持非常好,核心概念是倒排索引(类哈希表的数据结构),它是典型的空间换时间内存开销较大,支持分布式集群。
    • 缺点是不支持事务(熟悉数据库事务的小伙伴应该知道它的后果),并发场景下容易丢失数据;对此es支持通过 版本号进行乐观锁控制。
    • 个人看法,它最大的缺点是数据的安全性;硬件开销倒是其次(可能是我们客户比较财大气粗,资源容易申请才让我有了这样的错觉)。

    8. 当当网开源分库分表中间件:shardingsphere

    apache 顶级项目之一,我们的产品中已经用上了,对于海量数据来说支持确实挺好;

    个人私以为,使用这类的中间件,非常考验程序的设计

    • 一个稀烂的程序设计 + shardingsphere = 噩梦

    • 某些场景下设计不当,将会导致实际查询sql的次数,变成参数和分表的笛卡尔积;必将带来灾难性的后果。

    • 对聚合、排序的支持存疑,实际执行应该会分发到所有的分库分表执行,最终由中间件去汇总执行结果;我们的产品结合了elasticsearch,排序分页相关的查询没有经过数据库进行,在根据分表键查询时才走库。

    • 对一些查询支持不足,具体参考官网:https://shardingsphere.apache.org/document/current/cn/features/sharding/use-norms/sql/

    二、再说生活

    1. 好像还是老样子,家和公司两点一线,2021的我还是没能脱单;倒是也有收获,为人处事上学到了很多。

    2. 这一年我学会了对领导说拒绝,组内就那么几个人,比我早来的几个老哥都非常明智了,之前组长有啥烂活都直接绕过他们,找我们几个新来不久的接盘;不过我算是看透了,接犯不着在这卷;
      工作分内的事,我可以尽120%的努力去做,但是你要让我接盘别人整的烂活,那我只能装聋作哑了,大家都是肉体凡胎,我特么都还没找到另一半,可不想突然哪天乘键盘西去不归。

    3. 用工作分外的事情卷别人的人,都是害人害己的大聪明。

    三、说说2022

    • 2021 除了默默学习武装自己外,就没别的更好的回忆了

    • 新的一年里希望有个更好的环境,最好是能上岸;

    • 希望能脱单;

    • 希望每天不要再这么累;

    • 希望能多出去走走;

    • 学习更多的知识,哈哈哈我自己卷起来了。

  • 相关阅读:
    scrapy 随机UserAgent
    Scrapy使用中间件捕获Spider抛出的异常
    10.16-arrarylist
    10.15_package_2
    10.14_package_1
    10.13_enum_2
    10.12-enum_1
    10.11-java的接口2
    10.10-3对象和类_动手动脑-java的接口
    10.9-java的封装
  • 原文地址:https://www.cnblogs.com/bokers/p/15753228.html
Copyright © 2020-2023  润新知