Is this you? As a journalist, you can create a free Muck Rack account to customize your profile, list your contact preferences, and upload a portfolio of your best work.
Claim your profile
Articles by string userId
Building a persistent conversational AI chatbot with Temporal
A carefree, infinitely scalable chatbot architecture# How do you build a chatbot that remembers every conversation, scales infinitely, and never loses context — even during deployments? This is a problem that many companies have faced when building customer service chatbots that need to handle millions of concurrent conversations while maintaining perfect context awareness.
责任链框架 08:商品详情页数据聚合服务的技术实现
原创 于 2025-09-11 07:45:00 发布 · 694 阅读 · 2 · 3 · CC 4.0 BY-SA版权 版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。 文章标签: #java #spring boot #架构 #系统架构 #责任链模式 实战案例:商品详情页数据聚合服务的技术实现 框架地址:https://github.com/nemoob/atlas-chain 场景需求分析 业务背景 商品详情页是电商系统的核心页面之一,需要聚合来自多个服务的数据,包括商品基础信息、库存状态、用户评价、推荐商品、价格信息、促销活动等。这些数据分布在不同的微服务中,需要通过高效的数据聚合机制来提供统一的API接口。 核心业务流程 缓存命中 缓存未命中 商品详情请求 参数验证 缓存检查 返回缓存数据 并行数据获取 基础信息服务 库存服务 评价服务 推荐服务 价格服务 促销服务 数据聚合 数据处理 缓存更新 返回结果 业务需求 高性能要求:页面响应时间需控制在200ms以内 高可用性:单个服务故障不影响整体页面展示...
A Complete Guide to Quartz.NET Job Scheduling in ASP.NET Core
Introduction Quartz.NET is an open-source job scheduling library for .NET applications, enabling developers to execute background tasks at specified times or intervals. This article explains what is quartz, it’s applications and use cases. Additionally, it will demonstrate how to implement it in a .NET application with an example and code sample. What is Quartz.NET? Quartz.NET is an open-source job scheduling library for .NET applications.
Feature Toggles: A Simple Way to Manage Access to Premium Features
Imagine building an application with both free and premium features, and wanting to roll out a new feature for premium users without disrupting the experience for everyone else. The challenge is ensuring only the right users get access while keeping things smooth. For example, a streaming service like Netflix offers exclusive content or features to premium users, such as higher streaming quality or early access to new shows.
星火大模型接入及文本生成HTTP流式、非流式接口(JAVA)_星火接口-CSDN博客
一、接入星火大模型 首先,需要在讯飞开放平台(https://passport.xfyun.cn/login)进行登录: 点击这个+创建应用: 创建应用: 查看创建好的应用: 点击创建的应用可以查看各种鉴权信息,如调用http接口需要的APIPassword。 二、基于JAVA实现HTTP非流式接口 非流式,即一次性返回生成的内容,返回为一个接口;流式,即一边生成一边返回,会返回多个接口,所有接口的文本内容拼接起来构成完整的回答。 本文以模型Spark Lite为例,重要信息(APIPassword、接口地址)在这个页面查看:https://console.xfyun.cn/services/cbm 接口文档在这个地址查看:https://www.xfyun.cn/doc/spark/HTTP%E8%B0%83%E7%94%A8%E6%96%87%E6%A1%A3.html#_1-%E6%8E%A5%E5%8F%A3%E8%AF%B4%E6%98%8E 1.配置 需要先创建好Spring Boot项目,配置applicaiton.yml如下: port: 9000 spark:...
C#-FTP相关操作的简单封装
目录 1、Ftp帮助类的框架封装 2、初始化Ftp连接 3、检查Ftp连接 4、Ftp文件上传 5、Ftp文件下载 6、获取Ftp上文件/文件夹列表 7、删除Ftp文件 8、删除Ftp文件夹 9、创建Ftp文件夹 10、更改Ftp文件名 11、获取Ftp文件大小 1、Ftp帮助类的框架封装 public class FtpHelper{ #region FTPConfig string ftpUri; string ftpUserID; string ftpServerIP; string ftpPassword; string ftpRemotePath; #endregion private static Lazy<FtpHelper> instance = new Lazy<FtpHelper>(() => new FtpHelper()); public static FtpHelper Default = instance.Value; private FtpHelper() { }} 2、初始化Ftp连接 /// <summary> /// 初始化FTP连接 ///...
GGTalk 开源即时通讯系统源码剖析之:聊天消息防错漏机制
继上篇《GGTalk 开源即时通讯系统源码剖析之:客户端全局缓存及本地存储》GGTalk客户端的全局缓存以及客户端的本地持久化存储。接下来我们将介绍GGTalk的聊天消息防错漏机制。 GGTalk V8.0 对消息的可靠性,即消息的不丢失和不重复做了一系列优化处理,以保证不会错漏消息。 这篇文章将会详细的介绍GGTalk聊天消息防错漏机制。还没有GGTalk源码的朋友,可以到 GGTalk源码下载中心 下载。 一.
一招教你解决页面中关联id的转换-51CTO.COM
2024-05-17 08:19:53 依赖于数据缓存,一般针对通用数据才有数据转换的需要,比如用户、部门数据等,一般这些数据更适合缓存。 在工作中,我们经常有这样的业务情况,实体间通过id实现数据业务上的关联,比如订单和用户,订单的创建人id、商品id等,在页面查询时我们需要将对应的id信息转换成对应的中文描述,比如用户中文名称,商品中文名称等。如果是单条数据的展示还好,但是设计到列表查询,如何高效、优雅地实现这个效果呢? 现在接口返回的数据基本都是JSON格式,比如spring中使用了jackson,在controller层对结果进行json序列化,而我们要做的就是在序列化的过程中,实现id的转换 定义实体转换接口 由于需要对订单实体中的创建人id进行转换 public interface UserConvert { String USER_CACHE = "USER_CACHE"; String userId(); default ConvertItem getUserConvert(){ if( userId() == null ){ return null; }...
Spring Microservice: The Role of @Transactional
In any microservice, managing database interactions with precision is crucial for maintaining application performance and reliability. Usually, we will unravel weird issues with database connection during performance testing. Recently, a critical issue surfaced within the repository layer of a Spring microservice application, where improper exception handling led to unexpected failures and service disruptions during performance testing.
基于Spring Boot 3 + Spring Security6 + JWT + Redis实现登录、token身份认证
基于Spring Boot3实现Spring Security6 + JWT + Redis实现登录、token身份认证。 用户从数据库中获取。 使用RESTFul风格的APi进行登录。 使用JWT生成token。 使用Redis进行登录过期判断。 所有的工具类和数据结构在源码中都有。 系列文章指路👉 系列文章-基于SpringBoot3创建项目并配置常用的工具和一些常用的类 项目源码👉 /shijizhe/boot-test Spring Boot 3.0.6 Spring Security 6.0.3 这张图大家已经估计已经看过很多次了。 实现登录认证的过程,其实就是对上述的类按照自己的需求进行自定义扩展的过程。具体不多讲了,别的文章里讲得比我透彻。 show you my code.
如何写好代码?一个提升代码可读性的小技巧
阿里妹导读 写在开头 如何写好代码,一千个人眼中有一千个哈姆雷特,但是我认为有一点的是写好代码的公理,不可撼动,即对代码可读性的追求。最近在工作中面对了太多可读性不佳的代码,使得对于旧有代码的维护和分析困难重重,心力憔悴。基于“严于律己,宽以待人”的思想,遇到这种旧有代码尚可以接受,但为了避免未来这种可读性不佳的代码出于己手,我最近开始认真的思考这个问题——如何提高代码的可读性,使得代码变得整洁,甚至赏心悦目。下面我就从“控制流”的角度分享一下我对提高代码可读性的一些思考。 什么是控制流 什么是控制流?狭义上理解来说控制流是计算机程序中的一种基本概念,它指的是程序执行的顺序和方式。在编码中,控制流用于控制程序的执行流程,包括条件判断、循环、函数调用等。狭义上的理解过于底层,但从本质上来说,控制流其实就是一段执行流程。如果站在业务系统层面对控制流进行广义层面理解:控制流是对于任意一个系统的任意系统行为的步骤化拆解。例如对于用户详细信息查询行为进行步骤化拆解,可以拆解为:查询条件校验 -> 查询用户基本信息 -> 根据用户基本信息查询用户详细信息 -> 结果校验 ->...
Avalonia 实现跨平台的IM即时通讯、语音视频通话(源码,支持信创国产OS,统信、银河麒麟)
在 Avalonia 如火如荼的现在,之前使用CPF实现的简单IM,非常有必要基于 Avalonia 来实现了。Avalonia 在跨平台上的表现非常出色,对信创国产操作系统(像银河麒麟、统信UOS、Deepin等)也很不错。 现在,我们就来使用 Avalonia 实现一个跨平台的简单IM,除了文字聊天外,还可以语音视频通话。废话不多说,我们开始吧! 下图是这个简单IM的Avalonia客户端在国产统信UOS上的运行的截图: 一.
Avalonia 实现聊天消息渲染、图文混排(支持Windows、Linux、信创国产OS)
在使用 Avalonia 实现跨平台聊天软件时,渲染文字表情、图文混排是一项非常繁琐的工作,再加上还要支持GIF动图、引用消息、撤回消息、名片等不同样式的消息渲染时,就更加麻烦了。那么有简单的实现办法吗?嗯,有的。 在实现即时通讯软件或聊天软件时,渲染文字表情、图文混排是一项非常繁琐的工作,再加上还要支持GIF动图、引用消息、撤回消息、名片等不同样式的消息渲染时,就更加麻烦了。 好在我们可以使用 ESFramework 提供的 IChatRender 组件,使用它我们就能轻松实现类似于微信聊天消息的渲染效果。IChatRender 支持 Windows、Linux(包括国产OS)。在Windows平台上提供了基于 WinForm 和基于 WPF 的实现,在Linux上则是基于Avalonia 实现的。 废话不多说,先上张渲染Demo的效果图(该Demo源码可于文末下载): 一.
SpringBoot+WebSocket 消息推送 校验 心跳机制 PING-PONG 用户分组等
WebSocket PING-PONG心跳机制,只需要服务端发送PING,客户端会自动回应PONG,本文中使用了两个@OnMassage注解一个用于接收Text消息,一个用于接收PONG响应消息,此外还有二进制格式(InputStream ,byte[],ByteBuffer 等)。 说明: 记录一下,自己使用的WebSocket方式。 性能可能不是最优,也有可能有其他隐患。 (作者逻辑可能也点问题,有大佬发现问题还请不用口下留情!) 还有Lombok等自行导入 <!-- websocket --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-websocket</artifactId> </dependency> @Configuration public class WebSocketConfig { /** * ServerEndpointExporter类的作用是,会扫描所有的服务器端点, * 把带有@ServerEndpoint...
C# 使用FTP上传文件、下载文件,实现数据传输
FTP操作帮助类: public class FtpState { private ManualResetEvent wait; private FtpWebRequest request; private string fileName; private Exception operationException = null; string status; public FtpState() { wait = new ManualResetEvent(false); } public ManualResetEvent OperationComplete { get { return wait; } } public FtpWebRequest Request { get { return request; } set { request = value; } } public string FileName { get { return fileName; } set { fileName = value; } } public Exception...
Java Spring Security OAuth2.0 通过token 获取用户信息(ID)
通过获取Spring 身份认证(Authentication)来获取用户信息,这种方式必须 ①请求头中携带Authorization token 或 ②请求参数中携带access_token =token 参数 才能有效获取用户信息 String userId; Authentication authentication = SecurityContextHolder.getContext().getAuthentication(); if (authentication instanceof OAuth2Authentication) { OAuth2Authentication oAuth2Authentication = (OAuth2Authentication)authentication; Object details = oAuth2Authentication.getUserAuthentication().getDetails(); if (details == null) { log.error("获取用户信息失败!"); throw new...
dubbo安装及使用_sashaSloan的博客-CSDN博客
(新手笔记,存在错误还请指正) 尚硅谷dubbo dubbo的github地址 dubbo官方文档 dubbo和zookeeper的关系 dubbo和zookeeper的关系 zookeeper安装 zookpper安装 dubbo快速入门 概念 Dubbo是一款高性能、轻量级的开源Java RPC框架,它提供了三大核心能力:面向接口的远程方法调用,智能容错和负载均衡,以及服务自动注册和发现。(rpc的两个核心模块即:通讯,序列化。) 设计架构: 环境搭建 一、打开zookeeper 二、安装dubbo-admin管理控制台 dubbo本身并不是一个服务软件。它其实就是一个jar包能够帮你的java程序连接到zookeeper,并利用zookeeper消费、提供服务。所以不用在Linux上启动什么dubbo服务。 但是为了让用户更好的管理监控众多的dubbo服务,官方提供了一个可视化的监控程序,不过这个监控即使不装也不影响使用。 下载地址: dubbo-admin 进入目录,修改dubbo-admin配置: 修改...
flowable工作流--实操篇_flowable动态设置审批人_CxyGxm的博客-CSDN博客
简单介绍 本文通过申请发工资的业务场景来介绍使用工作流的全流程,包括画流程图,设置属性,以及代码编写 使用工作流大致分为四步 第一步:根据自己的业务画好流程图 第二步:设置流程图的属性和变量,保存模型 第三步:部署画好的流程图(发布) 第四步:根据业务和流程图写一些服务和监听器 这里主要介绍以下几个任务的使用 1.用户任务的分配和提交 2.服务任务的使用 3.中间信号捕捉事件的触发 4.排他网关的使用 5.通过设置流程变量,实现流程的不同流转 一、画流程图 申请发工资流程预览 二、设置流程信息 1.设置流程标识 设置流程的唯一标识为payrollApplication也就是模型KEY,后续部署和启动都会用到 2.设置流程变量 设置通过的流转条件为${approval==‘pass’}其中approval为变量名称,pass为变量值,工作流会自动解析表达式进行判断 设置不通过的流转条件为${approval==‘notPass’} 设置打款成功的流转条件为${payment == ‘success’} 设置打款失败的流转条件为${payment == ‘fail’}...
C#实现聊天消息渲染、图文混排(支持Windows、Linux) - zhuweisky - 博客园
在实现聊天软件时,渲染文字表情图文混排是一项非常繁琐的工作,再加上还要支持GIF动图、引用消息、撤回消息、名片等不同样式的消息渲染时,就更加麻烦了。那么有简单的实现办法吗?嗯,有的。 在实现聊天软件时,渲染文字表情图文混排是一项非常繁琐的工作,再加上还要支持GIF动图、引用消息、撤回消息、名片等不同样式的消息渲染时,就更加麻烦了。 好在我们可以使用 ESFramework 提供的 IChatRender 组件,使用它我们就能轻松实现类似于微信聊天消息的渲染效果。IChatRender 支持 Windows、Linux(包括国产OS)。在Windows平台上提供了基于 WinForm 和基于 WPF 的实现,在Linux上则是基于.NET Core 实现的。 废话不多说,先上张渲染Demo的效果图(该Demo源码可于文末下载): 效果还不错吧!下面我们就简单介绍下如何使用 IChatRender 实现上图所展示的渲染效果,大家下载源码对照着看,会更容易理解。 一.
springboot整合shiro+jwt+redis详解_springboot+shiro+jwt+redis_码里法的博客-CSDN博客
Subject 主体,代表了当前 “用户”,这个用户不一定是一个具体的人,与当前应用交互的任何东西都是 Subject,如网络爬虫,机器人等;即一个抽象概念;所有 Subject 都绑定到 SecurityManager,与 Subject 的所有交互都会委托给 SecurityManager;可以把 Subject 认为是一个门面;SecurityManager 才是实际的执行者; 安全管理器;即所有与安全有关的操作都会与 SecurityManager 交互;且它管理着所有 Subject;可以看出它是 Shiro 的核心,它负责与后边介绍的其他组件进行交互,如果学习过 SpringMVC,你可以把它看成 DispatcherServlet 前端控制器; 域,Shiro 从 Realm 获取安全数据(如用户、角色、权限),就是说 SecurityManager 要验证用户身份,那么它需要从 Realm 获取相应的用户进行比较以确定用户身份是否合法;也需要从 Realm 得到用户相应的角色 / 权限进行验证用户是否能进行操作;可以把 Realm 看成...
AI 腾讯云人脸核身之独立H5接入
一、概述 人脸识别,使用官方API:腾讯云人脸核身之独立H5接入。接口官方返回code = 0 表示成功,其他code码值均为对应码值信息,详见错误码。 注意: 1.合作方上送身份信息的计算签名参数与启动人脸核身计算签名参数不一致,有部分区别。 2.wbappid = webankAppId = app_id 二、合作方后台上送身份信息~实现流程 2.1. 前端入参 前端入参:客户身份证号、客户姓名、用户 ID (userId)、from(App || browser) controller @Autowired private PCH5SendIdentityService pch5SendIdentityService; /** * 合作方后台上送身份信息 PC H5 * 文档:https://cloud.tencent.com/document/product/1007/35893 * <p> * 请求 URL:https://miniprogram-kyc.tencentcloudapi.com/api/server/h5/geth5faceid?orderNo=xxx...
在Eclipse中使用JDBC连接MySQL(mysql-connector-java-8.0.28版本)_eclipse配置jdbc连接mysql_鸭巴子嘎嘎嘎的博客-CSDN博客
版本: Java 17 MySQL 8.0 mysql-connector-java-8.0.28 (注意mysql-connector版本和MySQL版本要匹配~) 目录 1.下载驱动,然后在Eclipse的project中添加驱动的jar包 电脑里安装了MySQL、JDK、Eclipse还不够,只有安装了相应的JDBC-MySQL数据库连接器(即数据库驱动), Java才能访问MySQL数据库服务器上的数据库。 先登录下面的网址,下载JDBC-MySQL数据库连接器。 MySQL :: Download Connector/Jhttps://dev.mysql.com/downloads/connector/j/在select operating system中选择platform independent, 下载zip。 mysql-connector-java-8.0.28,即我们需要的数据库驱动。(目前版本已经更新至8.0.29) 下载完成后,打开cmd, 在cmd里输入 java -cp mysql-connector-java-8.0.28.jar,...
C#实现聊天消息渲染与图文混排详解_C#教程_脚本之家
在实现聊天软件时,渲染文字表情图文混排是一项非常繁琐的工作,再加上还要支持GIF动图、引用消息、撤回消息、名片等不同样式的消息渲染时,就更加麻烦了。 好在我们可以使用 ESFramework 提供的 IChatRender 组件,使用它我们就能轻松实现类似于微信聊天消息的渲染效果。IChatRender 支持 Windows、Linux(包括国产OS)。在Windows平台上提供了基于 WinForm 和基于 WPF 的实现,在Linux上则是基于.NET Core 实现的。 废话不多说,先上张渲染Demo的效果图(该Demo源码可于文末下载): 效果还不错吧!下面我们就简单介绍下如何使用 IChatRender 实现上图所展示的渲染效果,大家下载源码对照着看,会更容易理解。 一.支持的聊天消息类型 IChatRender 支持渲染的聊天消息类型包括: (1)文本表情混排。 (2)图片,GIF 动图。 (3)文件传输进度及控制。 (4)个人名片、群名片。 (5)引用消息。 (6)语音消息。 (7)语音通话。 (8)视频通话。 (9)撤回消息、删除消息。 二.IChatRender...
Scalable Scenario to Configuring Entity Framework DbContext
In this post, we will show different ways to configure our application using the ASP.NET CORE 3.x and create a flexible Startup class.
Show More
loading
Actions
Is this you?
As a journalist, you can create a free Muck Rack account to customize your profile, list your contact preferences, and upload a portfolio of your best work.Get in touch with string
Contact string, search articles and posts on X, monitor coverage, and track replies from one place.
Learn more about Muck Rack