首页 文章 精选 留言 我的

精选列表

搜索[国产化替换],共10008篇文章
优秀的个人博客,低调大师

致力于实现 Http 服务器国产化,smart-http 1.1.5 发布

smart-http 是一款基于 smart-socket 的可编程式 http 应用微内核,同时还是为数不多的专注于服务器领域的国产开源项目。 smart-http 采用了基于状态驱动的算法进行 Http 协议解码,这是一种对初中级开发人员极为友好的算法,以结构化的形式展示完整的 Http 解码过程。与此同时,在 smart-socket 强大通信能力的加持下,smart-http 的性能表现已属于业内顶尖水准。 你可以将 smart-http 开发的程序部署在任何 Java 8 及以上版本的设备上。经过我们的不懈优化, 已经最大限度的降低程序运行期间对于内存和 GC 的开销。smart-http,是一款体现了作为开源人的工匠精神的作品。 开发示例 服务端 public class SimpleSmartHttp { public static void main(String[] args) { HttpBootstrap bootstrap = new HttpBootstrap(); bootstrap.pipeline(new HttpServerHandle() { @Override public void doHandle(HttpRequest request, HttpResponse response) throws IOException { response.write("hello world<br/>".getBytes()); } }); bootstrap.setPort(8080).start(); } } 客户端 public class HttpGetDemo { public static void main(String[] args) { HttpClient httpClient = new HttpClient("www.baidu.com", 80); httpClient.connect(); httpClient.get("/") .onSuccess(response -> System.out.println(response.body())) .onFailure(Throwable::printStackTrace) .send(); } } 更新内容 优化:引入跳跃式解码算法, 提升Http数据帧遍历效率。 优化:引入字符串常量池,提升解码效率并缓解 GC。 优化:提升 HttpRouteHandle 对于精准路径的路由匹配速度。 优化:升级 smart-socket 至最新版 1.5.9。 新特性:新增单元测试模块。 文档地址 GiteePages:https://smartboot.gitee.io/book/smart-http/ 项目地址 Gitee:https://gitee.com/smartboot/smart-http

优秀的个人博客,低调大师

存储器国产化为何选3D NAND作为突破口?

在上海一场以“匠心独运,卓越创芯”为主题的IC技术峰会上,长江存储CEO杨士宁先生参会并发表了题为《发展存储产业的战略思考》的演讲。在演讲中,他对为什么选择发展存储、为什么选择3D NAND Flash作为突破口、还有3D NAND Flash将面临什么样的挑战等问题,作了深刻的分析。 为什么中国要发展存储产业 在详细介绍为什么中国要发展存储产业之前,杨士宁首先对存储产业的整体状况作了一个分析。根据他的说法,在全球的半导体存储产品中,NAND 和 DRAM的产值占全球存储总额的95%。 而随着云计算、大数据、物联网等应用的发展,未来NAND的需求会持续增加,这就意味在可见的未来里,存储产品的需求量的大增,会带来庞大的市场价值。 中国作为全球的制造基地,在存储方面的消耗量是惊人的。根据数据统计,中国存储器的消耗量占全球总消耗量的50%以上,但是当中能由国产厂商供应的存储产品则是屈指可数。杨士宁表示,目前全球的存储产品(包括DRAM和Flash)都是由几家厂商承包,这个对于发展自主可控的中国信息技术产业是一个很大的挑战。因此发展国产的存储产业就被提上给了日程。 从另一方面看,存储产业供应的高度集中,缺少强力的竞争对手,尤其是三星电子在DRAM和NAND上面的全球垄断,让很多终端厂商有了顾虑,不少的同行竞争者也是有了其他想法,这就促使具有庞大存储消耗量的中国去发展存储产业。 再加上国家推行集成电路发展纲领,成立国家大基金支持集成电路产业的发展。于是存储就成为了发展的重点。 就这样,以发展国产存储为目的的长江存储顺势成立。 为什么以3D NAND作为突破口 在选定而来聚焦存储方向以后,接下来就要选择合适的产品方向,寻求更好的突破。 杨士宁指出,选择3D NAND作为突破口,是企业需求、外部机遇和市场动力的吻合。这是个技术的问题,更是个经济的问题。 他在演讲中表示,NAND和DRAM都是需要的存储产品,但是考虑到DRAM有两个增加难度:1.竞争对手有大量折旧完的产能,这样的问题也发展在2D NAND上;需求增长相对缓慢,因此长江存储就选择了增量巨大,且全球的厂商正在追逐的3D NAND产品作为突破口。 再加上看一下全球竞争对手的布局,与2D NAND和DRAM不一样,前者是一个高度成熟的市场,且在那个维度没有什么突破,竞争对手的深厚布局,让长江存储没有更多的机会。而3D NAND 相对来说,则是一个很好的机遇。 会面临什么样的挑战? 杨士宁指出,我们要明确一点,由于对高学历人才和高端设备的需求,IC制造是一个耗资巨大的产业,这是需要面临的第一个挑战。 其次,从存储产品的的发展来看,在未来的发展也要面临多方面的挑战。 其中包括了制程,cell架构,集成度、可靠性、阵列架构和芯片设计等多方面的挑战,尤其是对于基础懦弱的中国来说,挑战更是巨大。 怎样才能成功 在找准了方向,认识到了和国外竞争对手的差距,知道了技术的挑战所在之后,长江存储的下一步就是如何发挥自己的优势,取长补短,收获成功了。 杨士宁指出,要成功必须要做到这三点,那就是找对人,砸对钱,做对事,这是长江存储坚持的做事准则。 从现状看来,长江存储已经取得了不错的成果。 “长江存储的32层 3D NAND产品目前进展顺利,生产的产品指标都非常良好,并将会在2019年实现满载产能,这对于长江存储是一个巨大的挑战。”杨士宁说。 对于未来的发展方向,杨士宁指出,未来3D NAND带来的挑战还是巨大的,但是长江存储不会简单跟随业界的步伐发展,而是选择通过跳跃式的发展,展望到2019年实现与世界前沿的半代技术差距,2020追上世界领先技术。 本文转自d1net(转载)

优秀的个人博客,低调大师

Solon (可替换 SpringBoot)集成 Docker 实战:30分钟搞定容器化部署

作为 Java 开发者,你是否已经厌倦了 Spring Boot 容器化过程中的各种复杂配置和坑点?想要尝试更轻量、更高效的框架?那么 Solon 绝对值得你关注。今天我就带你实战 Solon 框架与 Docker 的集成,从环境准备到最终部署,全程避坑指南,让你 30 分钟内轻松搞定! 为什么选择 Solon + Docker? 在微服务架构盛行之下,应用容器化已成为标配。但传统的 Spring Boot 虽然功能强大,但在启动速度、内存占用和容器化体验上仍有优化空间。听一个老同事说,他们公司经常有1GB大小的 Spring Boot Jar 包。 Solon 的优势: 启动速度极快:Solon 应用的启动时间通常是 Spring Boot 的1/10到1/5 内存占用更小:基础镜像体积更小,运行时内存消耗更低。通常只有 Spring Boot 的1/10到1/2 配置更简洁:Docker 集成配置简单明了,减少踩坑概率 原生支持容器化:从设计之初就考虑了云原生场景 环境准备:三步搞定基础配置 在开始之前,确保你的本地环境满足以下要求: 1. 确认环境版本 JDK 版本:Solon 支持 JDK 8+,推荐使用 JDK 11 或 17 以获得更好的容器化支持 Docker 版本:Docker 20.10+,推荐使用 Docker Desktop 4.0+ Maven 版本:Maven 3.6+,确保插件兼容性 快速验证命令: java -version docker -v mvn -v 2. 创建 Solon 项目 如果你还没有 Solon 项目,可以通过网页版生成器快速创建: https://solon.noear.org/start/ 核心步骤:Docker 集成实战 1. 配置 Maven 插件 在pom.xml中添加 Docker 打包插件。这里我们使用经过验证的spotify插件: <plugin> <groupId>com.spotify</groupId> <artifactId>docker-maven-plugin</artifactId> <version>1.2.2</version> <configuration> <!-- 镜像名称配置 --> <imageName>solon-demo</imageName> <imageTags> <imageTag>${project.version}</imageTag> <imageTag>latest</imageTag> </imageTags> <!-- 使用推荐的基础镜像 --> <baseImage>adoptopenjdk/openjdk11:jre-11.0.11_9-alpine</baseImage> <!-- 容器启动命令 --> <entryPoint>["java", "-jar", "/${project.build.finalName}.jar", "--server.port=8080", "--drift=1"]</entryPoint> <resources> <resource> <targetPath>/</targetPath> <directory>${project.build.directory}</directory> <include>${project.build.finalName}.jar</include> </resource> </resources> </configuration> </plugin> 避坑提示: 使用 alpine 版本的 JDK 镜像可以显著减小镜像体积(如果不兼容,可以再换个别的) entryPoint 必须使用数组格式,确保参数传递正确 确保 finalName 与打包后的 jar 包名称一致 加上--drift=1表示当前环境ip会漂移的(如果有注册服务,当下线时要求不作健康检测)。这是 solon 对云原生的一种优化。 2.备选方案:使用 Dockerfile 如果你更喜欢传统的 Dockerfile 方式,可以在项目根目录创建 Dockerfile: # 使用轻量级基础镜像 FROM adoptopenjdk/openjdk11:jre-11.0.11_9-alpine # 设置工作目录 WORKDIR /app # 复制 jar 文件 COPY target/solon-demo-1.0.0.jar app.jar # 暴露端口(根据你的应用配置调整) EXPOSE 8080 # 启动应用 ENTRYPOINT ["java", "-jar", "app.jar", "--server.port=8080", "--drift=1"] 然后在 pom.xml 中配置插件使用 Dockerfile: <plugin> <groupId>com.spotify</groupId> <artifactId>docker-maven-plugin</artifactId> <version>1.2.2</version> <configuration> <imageName>solon-demo</imageName> <dockerDirectory>${project.basedir}</dockerDirectory> <resources> <resource> <targetPath>/</targetPath> <directory>${project.build.directory}</directory> <include>${project.build.finalName}.jar</include> </resource> </resources> </configuration> </plugin> 3. 构建和运行 构建 Docker 镜像: # 先打包应用 mvn clean package # 构建 Docker 镜像 mvn docker:build 构建成功后,验证镜像: docker images | grep solon-demo 运行容器: # 第一次运行 docker run -d -p 8080:8080 --name solon-app solon-demo # 查看运行状态 docker ps | grep solon-app # 查看日志 docker logs solon-app 容器管理命令: # 停止容器 docker stop solon-app # 重启容器 docker restart solon-app # 删除容器 docker rm solon-app 进阶技巧:优化和部署 1. 镜像标签管理和推送 为镜像打标签并推送到镜像仓库: # 打标签 docker tag solon-demo:latest your-repo/solon-demo:1.0.0 docker tag solon-demo:latest your-repo/solon-demo:latest # 推送到仓库 docker push your-repo/solon-demo:1.0.0 docker push your-repo/solon-demo:latest 2. 生产环境配置 对于生产环境,建议添加健康检查和资源限制: docker run -d \ -p 8080:8080 \ --name solon-app \ --memory=512m \ --cpus=1.0 \ solon-demo 常见问题排查 1. 容器启动后立即退出 检查应用启动日志:docker logs solon-app 确认 jar 包路径正确 验证端口是否被占用 2. 应用无法访问 检查端口映射:docker ps 确认端口映射关系 验证防火墙设置 检查应用监听的地址(确保是 0.0.0.0 而不是 127.0.0.1) 3. 镜像体积过大 使用 alpine 版本的基础镜像 多阶段构建去除构建依赖 使用 JRE 而不是完整的 JDK 总结 Solon 与 Docker 的集成相比传统框架更加轻量简洁,主要优势体现在: 配置简单:Maven 插件配置直观,减少出错概率 镜像小巧:基础镜像选择灵活,最终镜像体积更小 启动快速:容器启动速度更快,适合快速扩缩容 通过本文的实战指南,你应该能够在 30 分钟内完成 Solon 应用的 Docker 化。赶紧拿起你的 Solon 项目实践一下吧!如果在实践中遇到任何问题,欢迎在评论区交流讨论。

优秀的个人博客,低调大师

GCC 11 将默认前端语言为 C++ 17,C++ 14 被替换

GCC 11 会将默认前端语言从 C++14 变更为 C++ 17。 从 GCC9 开始,对C++ 17 的支持已经不再是实验性质,C++ 前端实现了完整的 C++ 17 语言,并且 C++ 标准库支持几乎也完成了(不过目前还有两个库特性有待完善)。 目前在 GCC 中,当不指定任何版本C++ 标准时,默认版本是 C++ 14(从 GCC 6.1 开始)。但是随着 GCC 对 C++ 17 的支持现在已经有一年以上的成熟期,并且 GCC 11 将于明年发布,开发团队认为是时候将 C++ 17 用作 GCC 11 的默认前端了。虽然可以在GCC 10 中进行此更改,但是它已经进入周期的后期阶段,没有太多时间来解决可能出现的任何后果;而虽然 GCC 已经在不断支持 C++ 2a/C++ 20,但目前要进行默认的转换还为时过早。 26 日,GCC 11 源码中已经将 C++ 17 更改为默认前端语言。C++ 17 有许多新的特性,包括:删除 trigraphs、在模板参数中允许使用 typename(作为替代类)、来自 braced-init-list 的新规则用于自动推导、UTF-8 字符文字与一些用于对齐内存分配的扩展等,迁移到C++ 17 对于 GCC 与开发者来说有众多优势。

资源下载

更多资源
腾讯云软件源

腾讯云软件源

为解决软件依赖安装时官方源访问速度慢的问题,腾讯云为一些软件搭建了缓存服务。您可以通过使用腾讯云软件源站来提升依赖包的安装速度。为了方便用户自由搭建服务架构,目前腾讯云软件源站支持公网访问和内网访问。

Spring

Spring

Spring框架(Spring Framework)是由Rod Johnson于2002年提出的开源Java企业级应用框架,旨在通过使用JavaBean替代传统EJB实现方式降低企业级编程开发的复杂性。该框架基于简单性、可测试性和松耦合性设计理念,提供核心容器、应用上下文、数据访问集成等模块,支持整合Hibernate、Struts等第三方框架,其适用范围不仅限于服务器端开发,绝大多数Java应用均可从中受益。

Sublime Text

Sublime Text

Sublime Text具有漂亮的用户界面和强大的功能,例如代码缩略图,Python的插件,代码段等。还可自定义键绑定,菜单和工具栏。Sublime Text 的主要功能包括:拼写检查,书签,完整的 Python API , Goto 功能,即时项目切换,多选择,多窗口等等。Sublime Text 是一个跨平台的编辑器,同时支持Windows、Linux、Mac OS X等操作系统。

WebStorm

WebStorm

WebStorm 是jetbrains公司旗下一款JavaScript 开发工具。目前已经被广大中国JS开发者誉为“Web前端开发神器”、“最强大的HTML5编辑器”、“最智能的JavaScript IDE”等。与IntelliJ IDEA同源,继承了IntelliJ IDEA强大的JS部分的功能。

用户登录
用户注册