码农翻身(随笔)

article/2025/9/21 13:49:33

书一直都有在读,我会一直更新博文,欢迎大家前来阅读、指教!

XML和注解

xml:应用于集中配置的场合,比如数据源的配置;

注解:像@Controller、@RequestMapping、@Transactional这样的注解,更适合与java方法写在一起,显得简单而直观;

所以就很快兴起了xml和注解的混合使用。


SSO单点登录

1、首次登录

首次登录后,浏览器就会保存sso.com的cookie

2、验证ticket

CAS是一个著名的SSO(单点登录)解决方案

单点退出

用户在一个系统退出了,认证中心需要把自己的会话和cookie消灭,然后还要去通知各个系统,让他们也把自己的会话统统消灭,这样才能在所有的系统中都实现真正的退出。


从密码到token,一个有关授权的故事

授权码+token

注:获取token的过程是在服务器后台完成的,浏览器接触不到

需要注意的一个问题:由于浏览器接触到了授权码,所以存在安全问题?

解决方法:第一种---设置授权码的失效时间;第二种---设置授权码只能用来申请一次token


Redis

1、数据结构

      List  列表

      Set  集合

      Sorted  Set  有序集合

      Hash   包含键值对的无序散列表

2、Hash槽(Hash  Slot)

      共16384个槽,采用了一种CRC16算法:先对key产生一个整数值,再对16384求余数

      优点:在Redis集群中,很好的解决了在增、删缓存服务器时的缓存失效问题

3、故障转移

      为了使Redis集群支持故障转移,提供了master-slave功能,当Hash被均匀的分成几个小组服务器,其中每个服务器都有一个master节点和多个slave节点组成,其中master节点的数据与slave节点的数据始终保持一致,对数据的操作都是在master节点中操作的,slave节点只作为备份存在,一旦master节点挂掉,其中的一个slave节点就会替换它,成为一个新的master,依然可以正常工作。

4、缓存服务器的优点

      缓存服务器之间可以互相通信,保证数据的完整性;(Hash槽)

      支持服务器动态的增加和删除;(Hash槽)

      还支持缓存数据的备份和故障转移。(master-slave)


Nginx(web服务器)

       实现了高可用,即集群

       keepalived------将多个Nginx形成一种master-slave结构(对外只提供一个IP地址)


Tomcat(Tomcat服务器)

       实现了高可用,即集群

       实现集群过程中,存在的问题:一个tomcat挂掉,他所拥有的session也会丢失,如何解决?

       解决方案:将tomcat中的session放入Redis集群


数据库

       实现了高可用,即集群,实现方式----读写分离

       一个master库:可读可写,以写为主

       多个slave库:只能读,不能写

       注:master库与slave库的数据要保持一致

       如何实现数据库事务的隔离?

       X锁和S锁应运而生

       X锁----排他锁,写数据的时候用

       S锁----共享锁,读数据的时候用

       读写分离的好处:极大地缓解了程序对X锁和S锁的争用

       数据库的读写分离伴随而来的一个问题是:tomcat的访问比较麻烦,如何解决?

       解决方案:在tomcat与数据库之间添加一个中间层,tomcat只需要正常的向中间层发出请求,具体的操作如:在程序中找到写数据的操作,发到master库去执行,找到读数据的操作发到指定的slave库去执行,这些繁琐的事情交给中间层去解决。


加解密技术

       分类:对称加密、非对称加密

       1、对称加密

       对信息的加密和解密都使用相同的密钥key,即:使用同一个密钥key对数据进行加密和解密(需要交换密钥key,交换过程中存在安全问题)

       2、非对称加密

       密钥被分解为一对,一个公开密钥(PK),一个私有密钥(SK)。公钥可以通过非保密方式向他人公开,而私钥则由解密方保存,不对外公开。(发送信息的一方通过公钥对数据进行加密,然后发送给接收方,接收方通过私钥对密文进行解密)

       优点:可以使通信双方无需事先交换密钥就可以建立安全通信。

下面简要介绍下RSA:

RSA(公钥加密算法)

       用于数据的加密数字签名

公钥和私钥的生成
1、选择两个素数P、Q
2、N=PQ
3、T=(P-1)(Q-1)
4、选择一个整数E,使  E<T  且  (E,T)=1
5、由DE    mod   T   三    1      得出   D   (mod 代表取余)
6、得到公钥(N,E),私钥(N,D)

 

        公钥加密算法

         1、公钥N,E

         2、密文C

         3、明文M

         公式:C  三   M的E次方     mod    N

        私钥解密算法

         1、私钥N,D

         2、密文C

         3、明文M

         公式:M  三   C的D次方     mod    N
 

数字签名
  发送者A(RSA私钥)  接收者B(RSA公钥)  
明文M --->签名DSKA(M)--->恢复EPKA(C)--->M
    比较M' = M  

       除A外没有别人能具有A的私密密钥SKA,所以除A外别人不能产生密文DSKA(M),这样,报文M就被签名了;B只能用持有的公钥进行解密,以实现核实A对报文的签名。


心灵鸡汤

        到尽头为止,这本书我已经大致看了一遍。初次阅读,在理解上可能还停留在表面,在以后我还会反复去阅读,正所谓:书读百遍,其义自见。

       1、对新技术要充满好奇心,积极去学习。在现今这个技术更新飞快的时代,如果不实时更新自己的数据库,就会很快被这个行业所淘汰。

        2、敢于去挑战自我能力之外的东西。当机会降临的时候,要勇敢地抓住它,当然在去做的时候会遇到很多的问题,但它会引导你去疯狂的学习,最后你就会发现自己登上了更高一层的台阶。

        3、学东西要有追根溯源的喜好。想要对某个技术有更深层次的理解,就要明白这几点:为什么要有这门技术、这门技术解决的什么、如何使用这门技术。


http://chatgpt.dhexx.cn/article/e8N9ZfRV.shtml

相关文章

读《码农翻身》有感

前几日偶得一本《码农翻身》&#xff0c;闲来品读&#xff0c;收获颇丰。 作者刘欣老师可能是码农中故事讲得最好的人&#xff0c;能把线程&#xff0c;进程&#xff0c;死锁这种概念讲成计算机内部王国漫游记&#xff0c;能把分布式事务这种高级概念讲成java王国中的权贵大臣勾…

告别码农,成为真正的程序员

本文是我借助 Google 从网上拼凑的文章&#xff0c;可能条理不是很清晰&#xff0c;希望对广大程序员们有些帮助。 一、成长的寓言&#xff1a;做一棵永远成长的苹果树 一棵苹果树&#xff0c;终于结果了。 第一年&#xff0c;它结了10个苹果&#xff0c;9个被拿走&#xff0c;…

达到年薪百万,就算码农翻身了吗?

上周末有个小伙伴问我&#xff1a;码农怎么样才能真正地翻身&#xff1f; 我自己都没有翻身&#xff0c;更没有达到财务自由&#xff0c; 回答这样的问题显然是力不从心的。 &#xff08;郑渊洁对财务自由的定义&#xff1a;从现在开始不工作&#xff0c;能保持现在的生活水平不…

《码农翻身》之技术之路

《码农翻身》读书笔记之技术之路 这是我的后端读书笔记系列文章的第四三篇&#xff0c;选取的是最近刚刚圈粉的知名博主刘欣创作的《码农翻身》。这篇文章只是最后一部分内容。 本文内容主要根据知名博主刘欣一作《码农翻身》的内容总结而来&#xff0c;本书的内容风趣幽默&a…

给大忙人看的码农翻身记

码农翻身记个人读后感 文章目录 码农翻身记个人读后感本书介绍大纲启发分享个人的能力欠缺的地方书中比较棒的建议 本书介绍 《码农翻身》用故事的方式讲解了软件编程的若干重要领域&#xff0c;侧重于基础性、原理性的知识。 非常适合刚入门大学生或者 计算机领域入行 一两年左…

码农翻身之编程语言的巅峰

“哇塞&#xff0c;怎么可能这么简单&#xff01;” 当C语言老头儿还是小伙子的时候&#xff0c;第一次见到了汇编&#xff0c;发出了这么一声感慨。 在C语言看来&#xff0c;这汇编的指令实在是太简单了&#xff0c;简单到了令人发指的地步&#xff0c;只有这么几类指令&…

《码农翻身》

大话编程 我是一个线程 我是一个Java class Javascript: 一个屌丝的逆袭 Java:一个帝国的诞生 JSP:一个装配工的没落 TCP/IP 之 大明王朝的邮差 TCP/IP 之 大明内阁 TCP/IP 之 蓟辽督师 CPU 阿甘 CPU 阿甘之烦恼 CPU 阿甘&#xff1a;函数调用的秘密 我是一个网卡 …

码农翻身 各章节链接

大话编程 我是一个线程 我是一个Java class Javascript: 一个屌丝的逆袭 Java:一个帝国的诞生 JSP:一个装配工的没落 TCP/IP 之 大明王朝的邮差 TCP/IP 之 大明内阁 TCP/IP 之 蓟辽督师 CPU 阿甘 CPU 阿甘之烦恼 CPU 阿甘&#xff1a;函数调用的秘密 我是一个网卡 …

读书笔记(一)《码农翻身》

好久都没有写技术博客了&#xff0c;大概有一年左右没有开始写了&#xff0c;原因是自己弄了一个日志博文&#xff0c;当然这不是重点&#xff0c;重点是心态发生了改变&#xff0c;从心里上感觉技术兴趣不大了&#xff0c;后来又发现&#xff0c;并不是对技术失去了兴趣&#…

写给初学者:编程的本质

俗话说&#xff0c;开卷有益&#xff0c; 前几天又翻了下《计算机程序的构造和解释》&#xff0c;看到一个采用牛顿法求平方根的例子&#xff0c;产生了点新的感想&#xff0c;和大家分享下。 平方根的数学定义是这样的&#xff0c;对于一个数x , 如果有另外一个数r, r大于等于…

码农翻身全年文章精华

在码农翻身公众号写了一年多&#xff0c; 最大的体会就是&#xff1a;原创真心不易&#xff01; 每天思考的最大问题就是&#xff1a; 下一篇文章写啥&#xff1f; 在大家的支持和鼓励下&#xff0c;还是坚持了下来&#xff0c; 回头看看走过的路&#xff0c;这一年过得还算…

如何还原保存的训练模型

训练模型的还原 之前把训练模型存盘&#xff0c;实际上保存的是模型里所有变量当前运行的值。这相当于是训练模型的快照&#xff0c;把保存的时间点的所有变量都变成存盘文件保存起来。如果要还原这个模型&#xff0c;我们需要从存盘的模型中把所有变量的值读取出来&#xff0…

VisionPro 9.5中的工具调用和工具组(ToolBlock)调用

VisionPro是Cognex的机器视觉算法软件&#xff0c;通常的做法是使用VS做二次开发。 这里主要分享VisionPro中通过ToolBlock实现一个视觉检测&#xff0c;以及通过调用单个Tool实现一个视觉检测。 最终实现一个硬币数量检测以及坐标位置输出的应用&#xff1a; 使用ToolBlock的…

未能找到任何适合于指定的区域性或非特定区域性的资源

未能找到任何适合于指定的区域性或非特定区域性的资源。请确保在编译时已将“WindowsFormsDemo.UnifiedConfigListControl.resources”正确嵌入或链接到程序集“设备配置助手”&#xff0c;或者确保所有需要的附属程序集都可加载并已进行了完全签名 之前写过一篇这个问题&…

超强Video深度学习开源工具集,来了!

01 导读 广大人工智能算法工程师&#xff0c;有没有感觉到近几年AI程序员数量激增&#xff0c;公司新来的程序员也可以轻松实现图像分类、目标检测等基本深度学习任务&#xff0c;资深算法工程师岗位如何自保&#xff1f;广大内容平台的后台开发者&#xff0c;视频理解&a…

opencv上设置摄像头曝光参数的经验

实际应用中我们需要调整摄像头的参数比如曝光&#xff0c;由于opencv的后端是一般编译是支撑多种插件&#xff0c;详细信息请参考OpenCV: Video I/O with OpenCV Overview&#xff0c;这里引用里面的图&#xff1a; 对于VideoCaputure&#xff0c;后端有ffmpge&#xff0c;V4L&…

VS 配置 openCV 、Python 、Pytorch

VS 配置 openCV 和 Python 1、VS配置opencv1.1 系统环境PATH增加1.2 复制到Sysmtem32下1.3 配置项目1.3.1 包含目录添加1.3.2 库目录添加1.3.3 附加属性依赖项 2、VS配置Python2.1 复制include和libs文件夹复制到vs项目路径下面2.2将你需要调用的python脚本也存放在该目录下面2…

做机器视觉哪个软件好?

点击上方“小白学视觉”&#xff0c;选择加"星标"或“置顶” 重磅干货&#xff0c;第一时间送达 机器人视觉有接触&#xff0c;但是不多&#xff0c;这里我推荐一下一个详细介绍的视觉软件。 在构建机器视觉系统时&#xff0c;开发人员可以选择众多知名公司的商用软件…

康耐视Visionpro脚本编写教程一

theme: github ​本文已参与「新人创作礼」活动&#xff0c;一起开启掘金创作之路。 康耐视visionpro脚本编写 visionpro目前来说在工业中的应用时非常的广泛的&#xff0c;而且作为苹果手机厂指定的视觉厂家来说&#xff0c;他的实力是毋庸置疑的。 康耐视VisionPro的优势&…

visionpro联合c#二次开发二

本文已参与「新人创作礼」活动&#xff0c;一起开启掘金创作之路。 本次康耐视联合C#文档是最后一篇visionpro与C#联合的文章&#xff0c;后续我们将开始c#与halcon的编写或者vidi的文章。 首先我们定义所需要的变量 //定义作业CogToolBlock job;//定义作业VPP的路径string p…